在下面提到的代码中,当我应用ios::out时,它正常工作,但在ios::ate的情况下并非如此,它显示了一些位置--文件中的1并且无法写入文件中。
其次,其中使用了peek()函数。
代码:
int main ()
{
char p[80];
fstream file("text1.txt",ios::in|ios::ate);
cout<<"Starting position of the file is "<<file.tellg()<<endl;
getch();
if(file.is_open())
cout<<"file is open\n";
else
cout<<"file is not open\n";
getch();
file.seekp(0);
while(file>>p)
{
cout<<p<<endl;
}
file.clear();
if(file<<"Now if we add text to the file")//Not working
cout<<"\n Data entry possible\n";
else
cout<<"\n Data entry not possible\n";
file.flush();
cout<<"\nThe current position of the file pointer is "<<file.tellg()<<endl;//Showing position -1
file.clear();
file.seekp(0);
if(file.eof())
cout<<"\n the eof\n";
while(file>>p)
{
cout<<p<<endl;
}
file.close();
return 0;
}输出:
Starting position of the file is 30
file is open
Now
if
we
add
text
to
the
file
Data entry not possible
The current position of the file pointer is -1
Now
if
we
add
text
to
the
file发布于 2015-11-15 11:19:56
ate并不意味着out,所以如果您想要写入文件,仍然需要使用out
fstream file("text1.txt",ios::in|ios::out|ios::ate);https://stackoverflow.com/questions/33719035
复制相似问题