使用EOF函数作为条件



我正试图从项目中的文件导入数据,但在查找EOF时遇到问题。首先,我使用EOF函数作为条件,但在阅读了这个之后,我尝试更改代码,但仍然出现相同的错误。请帮帮我。感谢

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
class Rooms;
class Guest;
class MeetingRoomGuest;
Rooms* r_ptr[999];
int r_count=0;
ofstream infile("new.txt",ofstream::binary);
while(infile.read((char *)(&r_ptr[r_count]),sizeof(Rooms)))
{   
    r_count++;
}
infile.close(); 
int main ()
{
    // some code here
    return 0;
}

错误:

错误C2059:语法错误:"while"

更新:请让我知道这是否是一个更好的实现?感谢

int main()
{
    r_ptr[r_count]= new Rooms;
    while(infile.read((&r_ptr[r_count]),sizeof(Rooms)))
    {   
        r_ptr[++r_count]= new Rooms;
        r_count++;
    }
    infile.close(); 
    //some code here
}

我仍然有一个错误,

错误:

错误C2039:"read":不是"std::basic_ofstream&lt_Elem,_Traits>'

更新:非常感谢。代码终于修复了,这里是最后的实现,

int main()
{
    r_ptr[r_count]= new Rooms;
    while(infile.read((char *)(&r_ptr[r_count]),sizeof(Rooms)))
    {   
        r_count++;
        r_ptr[r_count]= new Rooms;
    }
    infile.close(); 
    // some work
}

似乎有一两个语法问题:

  1. 你有一个函数或main之外的代码(while和infile命令),它们需要放入main或函数中。

  2. 你的第二次需要一个dodo{....}while(1),它也永远运行

  3. 您的所有变量都是在main之外定义的。这使得它们成为全局变量,这是一件需要尽可能避免的事情。它们应该在main和内移动

  4. ofstream用于输出到文件,您希望ifstream从文件获得输入

在主之外不能有一段时间

int main ()
{
    ofstream infile("new.txt",ofstream::binary);
    while(infile.read((char *)(&r_ptr[r_count]),sizeof(Rooms)))
    {   
        r_count++;
    }
    infile.close(); 
    // some code here
    return 0;
}

最新更新