C++文件处理:ios::ate无法正常工作

C++ File handling:ios::ate not working properly

本文关键字:常工作 工作 处理 文件 ios ate C++      更新时间:2023-10-16

在下面提到的代码中,当我应用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 openn";
    else
        cout<<"file is not openn";
    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 possiblen";
    else
        cout<<"n Data entry not possiblen";
    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 eofn";
    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

ate并不意味着out,因此如果您想写入文件,您仍然需要使用out

fstream file("text1.txt",ios::in|ios::out|ios::ate);