2つのプログラムを作成して同時に実行する必要がありwrite.cpp
ます。read.cpp
1つはファイルに書き込み(上書き)し、もう1つはファイルから読み取ります。
基本的に、ファイルには常に1行しかありません。
write.cpp
操作は正常に実行されますが、read.cpp
何も表示されません。を使用するtail -f
と、誤った結果も表示されます。
write.cpp:
#include <stdio.h>
#include <ctime>
#include <unistd.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
ofstream myfile;
int i = 70;
char c;
while(i <85)
{
myfile.open ("example.txt");
c = i++;
myfile << c << endl;
myfile.close();
sleep(1);
}
return 0;
}
read.cpp:
#include <iostream>
#include <fstream>
#include <string>
#include <unistd.h>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
sleep(1);
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
両方のプログラムのどちらの部分が問題を引き起こしているのか、そしてどのように解決できるのかを知ることができますか?