首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++文件处理:ios::ate不能正常工作

C++文件处理:ios::ate不能正常工作
EN

Stack Overflow用户
提问于 2015-11-15 11:13:06
回答 1查看 606关注 0票数 3

在下面提到的代码中,当我应用ios::out时,它正常工作,但在ios::ate的情况下并非如此,它显示了一些位置--文件中的1并且无法写入文件中。

其次,其中使用了peek()函数。

代码:

代码语言:javascript
复制
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;
}

输出:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-15 11:19:56

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

代码语言:javascript
复制
fstream file("text1.txt",ios::in|ios::out|ios::ate);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33719035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档