私はそれがバイナリだと、私の構造体からfwriteのFUNCでそれを書くというのが私のファイルを一覧表示する機能書いた:なぜfseekが機能しないのですか?
void ReadFile::printList(){
clearerr(bookFilePtr);
fseek(bookFilePtr,0L,SEEK_SET); // set to begin of file
int counter = 1;
cout << "***************************************************" << endl;
struct book tmp ;
while (!feof(bookFilePtr)){
fread(bookPtrObj,sizeof(struct book),1,bookFilePtr);
cout << bookPtrObj->name << "s1"<< endl;
cout << bookPtrObj->publisher << "s2"<< endl;
cout << bookPtrObj->author << "s3" <<endl;
cout << bookPtrObj->stock << endl;
cout << bookPtrObj->translation << endl;
cout << bookPtrObj->trasnlator << "s4" <<endl;
cout << bookPtrObj->delayDays << endl;
cout << bookPtrObj->delayPay << endl;
cout << "***************************************************" << endl;
fseek(bookFilePtr,counter * sizeof(struct book) ,SEEK_SET); // seek to next data
counter ++;
}
をかつてはすべての私のファイルのために印刷しますが、私のループからやめませんでした。私のfuncは最後のデータをfile.Howで印刷し続け、私のfuncを終了してファイルの終わりまで調べるのですか? fseekは機能しますか?
なぜあなたは迷惑をかけていますか? 'sizeof(struct book)'バイトでファイルポインタをすでに移動しています。とにかく、それぞれの呼び出しで 'fread'の結果を実際に調べるべきですが、それは別の問題です。 –