4
#include<stdio.h>
#include<fstream.h>
class Test
{
char name[10];
int data;
public:
void getData()
{
cin>>name;
cin>>data;
}
void display()
{
cout<<name<<data;
}
void modify()
{
cin>>name;
cin>>data;
}
};
int main()
{
Test t1,t2,t3,t4;
// remove("FileIO.dat");
t1.getData();
t2.getData();
t3.getData();
t4.getData();
fstream fp1("FileIO.dat",ios::out|ios::app);
fp1.write((char*)&t1,sizeof(t1));
fp1.write((char*)&t2,sizeof(t2));
fp1.write((char*)&t3,sizeof(t3));
fp1.write((char*)&t4,sizeof(t4));
fp1.close();
fstream fp2("FileIO.dat",ios::in|ios::out);
fp2.read((char*)&t1,sizeof(t1));
fp2.read((char*)&t2,sizeof(t2));
int pos=-1*sizeof(t2); // ****** not understanding this line
cout<<pos;
fp2.seekp(pos,ios::cur);
t2.modify();
fp2.write((char*)&t2,sizeof(t2));
fp2.read((char*)&t3,sizeof(t3));
fp2.read((char*)&t4,sizeof(t4));
t1.display();
t2.display();
t3.display();
t4.display();
fp2.close();
return 0;
}
該程序使用turbo C++編寫,它處理將對象寫入文件並讀取它們以及更新已寫入文件的對象。有問題了解下面的C++代碼。 (seekp)
在上面的代碼中,我不明白爲什麼-1乘以sizeof對象來獲得位置。 任何人都請解釋。
非常感謝讓我自己清楚。清楚理解這個概念... :-) – ankurtr
@ ankur.trapasiya,ASCII藝術是解決所有世界問題的方法:) – riwalk
ASCII ART?它是什麼 ? – ankurtr