gpt4 book ai didi

c++ - 不写入文件的简单 C++ 程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:31 25 4
gpt4 key购买 nike

这些行是 main() 的唯一内容:

fstream file = fstream("test.txt", ios_base::in | ios_base::out);
string word;
while (file >> word) { cout << word + " "; }
file.seekp(ios::beg);
file << "testing";
file.close();

程序正确输出了文件的内容(是“the angry dog”),但是当我之后打开文件时,它仍然只是说“the angry dog”,而不是像我期望的那样“testingry dog”到。

完整程序:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
fstream file = fstream("test.txt", ios_base::in | ios_base::out);
string word;
while (file >> word) { cout << word + " "; }
file.seekp(ios::beg);
file << "testing";
file.close();
}

最佳答案

您的代码中有两个错误。

首先,iostream 没有复制构造函数,因此(严格来说)您不能按照您的方式初始化file

其次,一旦您运行完文件末尾,eofbit 就会被设置,您需要先清除该标志,然后才能再次使用该流。

fstream file("test.txt", ios_base::in | ios_base::out);
string word;
while (file >> word) { cout << word + " "; }
file.clear();
file.seekp(ios::beg);
file << "testing";
file.close();

关于c++ - 不写入文件的简单 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11916015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com