在下面提到的代码中,当我应用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
答案 0 :(得分:3)
ate
并不意味着out
因此,如果您要写入文件,则仍需要使用out
fstream file("text1.txt",ios::in|ios::out|ios::ate);