C++不会创建要将文本输出到的文件

C++ will not create a file to output text to?

本文关键字:输出 文件 文本 创建 C++      更新时间:2023-10-16

所以,我这里有一个简单的C++代码片段,它只是要求文件路径,检查文件路径是否存在,如果存在,程序就会关闭。如果没有,它会创建一个文件并向其中写入文本。我输入的路径是 C:\temp.txt,但无论我使用哪个路径,结果都是相同的:不会创建任何文件。我正在使用Visual Studio 2010。

string outFile = "";
cout << "Enter a file path for an output file that does not exist already: ";
cin >> outFile;
ofstream file_writer;
file_writer.open(outFile, ios::out);
if (file_writer.good()) {
    cout << "This file exists already!" << endl;
    system("PAUSE");
    return 255;
}
else
file_writer << "Hello";
file_writer.close();

你可以试试:

string outFile = "";
cout << "Enter a file path for an output file that does not exist already: ";
cin >> outFile;
ofstream file_writer;
file_writer.open(outFile, ios::in);
if (file_writer.good()) { //This now just checks if the file exists already
    cout << "This file exists already!" << endl;
    system("PAUSE");
    return 255;
}
file_writer.open(outFile, ios::out); //Now since we know the file doesn't exist, we can create it safely
if (!file_writer.good()) {
    cout << "Failed to create file!" << endl;
    return 254;
}
file_writer << "Hello";
file_writer.close();

检查您的 fail() 错误消息:

if (outfile.fail())
    cout << strerror(errno) << endl;

不能写入"C:"。尝试使用不同的路径,它应该有效。

很好! 如果未发生错误,则返回 ofstream::good() true。在 if 条件中使用否定。

if (!file_writer.good()) {
...
}

这个回复可能有点晚了,但我只花了两天时间弄清楚为什么Visual Studio C++没有创建任何文本文件。

我正在浏览 Wrox 专业版C++第四版。在第 13 章关于文件流部分的内容中,我无法获得任何示例。我花了很多时间下载具有相同结果的示例代码。

然后我查看了我的防病毒软件。其中有两个设置引起了我的注意:文件夹访问和排除项。我在Widows 10上运行Windows Security。我更改了排除项以防止安全软件监视我的 vs2019 文件夹和子文件夹。没有改善。

然后我查看了父文件夹c:files。 这已启用文件夹访问。我删除了它,一切正常。我没有将文件夹访问权限放在整个文件夹中,而是在特定子文件夹上启用它,省略了 vs2019 文件夹。 我希望这可以节省一些令人沮丧的时间。