C++ 在文件内容更改后,使用ifstream读取同一文件(直到EOF)
要求:C++ 在文件内容更改后,使用ifstream读取同一文件(直到EOF),c++,file-io,seekg,C++,File Io,Seekg,要求: 我必须一直读到EOF(16字节a 特定文件中的时间),以及 然后说睡眠5秒钟。现在, 5秒钟后,当我尝试阅读时 从文件(其内容将 已被添加到),该 预期设计必须以这种方式进行 它从它的 左上角,然后再次扫描 EOF之前的内容(每次16字节) 到达 我已经编写了(基本)代码,使用ifstream从给定文件读取(直到每次EOF-16字节),如下所示: #include <stdio.h> #include <fstream> #include <iostre
我必须一直读到EOF(16字节a 特定文件中的时间),以及 然后说睡眠5秒钟。现在, 5秒钟后,当我尝试阅读时 从文件(其内容将 已被添加到),该 预期设计必须以这种方式进行 它从它的 左上角,然后再次扫描 EOF之前的内容(每次16字节) 到达 我已经编写了(基本)代码,使用ifstream从给定文件读取(直到每次EOF-16字节),如下所示:
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
int fd, i, j, length, pos;
char buffer[100][16];
ifstream Read;
std::ostringstream oss;
int current_position = 0;
Read.open("from4to5", ios::binary);
//Get the size of the file
Read.seekg(0, ios::end);
length = Read.tellg();
Read.seekg(0, ios::beg);
for(i=0; i<length; i++)
{
buffer[i][16] = '\0';
}
//Read the file in 16byte segments or eof(), whichever comes first
//Testing the return condition of the function is preferred, as opposed to testing eof()
while(Read.get(buffer[i], 17))
{
for(j=0; j<=16; j++)
oss << buffer[i][j];
cout << "Contents : " << oss.str() << endl;
oss.seekp(0);
i++;
}
// Output is :
// Contents : BD8d3700indiaC#E
// Contents : BD6d4700godgeD3E
// Contents : BD9d1311badge3TE
return 0;
}
您必须:保存您的位置
关闭文件
重新打开文件
找到你保存的位置并继续阅读,直到EOF
你必须:
保存您的位置
关闭文件
重新打开文件
查找保存的位置并继续阅读,直到EOF
您应该能够清除输入流上的EOF标志并继续阅读
while (true)
{
while(Read.get(buffer[i], 17))
{
for(j=0; j<=16; j++)
oss << buffer[i][j];
cout << "Contents : " << oss.str() << endl;
oss.seekp(0);
i++;
}
Read.clear();
sleep(5);
}
while(true)
{
while(Read.get(buffer[i],17))
{
对于(j=0;j,您应该能够清除输入流上的EOF标志并继续读取
while (true)
{
while(Read.get(buffer[i], 17))
{
for(j=0; j<=16; j++)
oss << buffer[i][j];
cout << "Contents : " << oss.str() << endl;
oss.seekp(0);
i++;
}
Read.clear();
sleep(5);
}
while(true)
{
while(Read.get(buffer[i],17))
{
对于(j=0;ja文件不是在两个进程之间进行通信的最佳工具。你应该研究使用套接字。我知道,如果我使用套接字,我会不那么困惑,但这是针对我们必须使用文件的项目。文件不是在两个进程之间进行通信的最佳工具。你应该研究使用套接字。我知道,我会的如果我使用了套接字,就不会那么困惑了,但这是针对一个必须使用文件的项目。已解决-感谢所有帮助。这里的代码:Mirror:已解决-感谢所有帮助。这里的代码:Mirror:我必须问一句,这个方法(Read.clear())不起作用吗?如果是的话,这是一个比我更好的答案:)我不得不问,这个方法(Read.clear())不是很有效吗?如果是的话,这是一个比我更好的答案:)