我想從項目中的文件導入數據,但我無法找到EOF。首先,我使用EOF函數作爲條件,但我在閱讀this後,試圖更改代碼,但仍然給出相同的錯誤。請幫助我。 感謝使用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;
}
錯誤:
error C2059: syntax error : 'while'
UPDATE: 請讓我知道這是一個更好的實現得益於
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
}
我仍然得到錯誤,
錯誤:
error C2039: 'read' : is not a member of 'std::basic_ofstream<_Elem,_Traits>'
UPDATE: 非常感謝。這些代碼已經最終確定,這裏是最後的實施,
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
}
在經過語法和編譯問題之後,出現了一個嚴重的設計問題:試圖讀取或寫入原始指針爲'char []'將永遠不會做你想要的。閱讀關於序列化。 – aschepler 2011-06-09 11:35:31
@ aschepler,哦!對不起,我幾乎忘了爲他們分配內存。 Thankyou :) – 2011-06-09 11:37:24
你正在循環中增加r_count一次或多次。嘗試 - r_ptr [r_count] =新房間;和這一行r_ptr [r_count] = new Rooms;在不需要while循環之前 – daven11 2011-06-09 11:47:19