[問題] istream的read/write函式如何定位?
ifstream inPut("file.dat", ios::in);
inPut.read(reinterpret<char*>(&OBJ), sizeof(class));
請問這個敘述完成後檔案的讀取位置會在哪裡?
假設以下每格都是sizeof(class)個bytes
file
□ ̄ ̄未讀取
讀過一筆 ̄ ̄□
□ ̄ ̄讀過兩筆
讀過三筆 ̄ ̄
並且達eof
上述的觀念正確嗎?
會有個疑問是當我跑
do{
inPut.read(reinterpret<char*>(&OBJ), sizeof(class));
cout<<"hello"<<endl;
}
while(!inPut.eof());
三筆資料會印出四個 hello, 第三筆會讀兩次才達到eof
能否幫我指正或是解釋一下為什麼會這樣??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.69.128.66
推
08/03 13:06, , 1F
08/03 13:06, 1F
→
08/03 13:06, , 2F
08/03 13:06, 2F
→
08/03 13:07, , 3F
08/03 13:07, 3F
推
08/03 13:14, , 4F
08/03 13:14, 4F
→
08/03 13:14, , 5F
08/03 13:14, 5F
推
08/03 13:40, , 6F
08/03 13:40, 6F
→
08/03 13:40, , 7F
08/03 13:40, 7F
→
08/03 13:40, , 8F
08/03 13:40, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章