file.open 没有在 C++ 中创建新文件

file.open not creating a new file in C++

我正在尝试 运行 下面的代码,但它既没有显示路径上的任何文件,也没有从中读取任何内容。无论我通过“cin >>”写入文件,它都没有被写入。谁能告诉我下面代码中的错误:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    char string[80];

    cout << "Enter Input" << endl;
    cin >> string;

    int len = strlen(string);

    fstream file;
    file.open("TEXT", ios::in | ios::out);

    for (int i = 0; i < len; i++)
        file.put(string[i]);

    file.close();
    file.open("TEXT", ios::in | ios::out);

    file.seekg(0);

    cout << "Output" << endl;
    while (file) {
        char ch;
        file.get(ch);
        cout << ch;
    }

    file.close();
    return 0;

}

您应该在公开调用中添加 fstream::app 标志,这样就可以了!

不要乱用你不需要(或不理解)的文件模式。先以只写方式打开文件,再以只读方式打开文件。使用不同的流进行读取和写入。

ofstream file_out;
file_out.open("TEXT");
for (int i = 0; i < len; i++)
    file_out.put(string[i]);
file_out.close();

ifstream file_in;
file_in.open("TEXT");
cout << "Output" << endl;
while (file_in) {
    char ch;
    file_in.get(ch);
    cout << ch;
}

除非您真正了解有关 ios::inios::out 的规则,否则在需要输入时使用 ifstream 并在需要输出时使用 ofstream 更安全。

更多 reading 如果您想了解规则。