C++ 不创建文本文件
C++ doesn't create text file
我是 Whosebug 的新手。
我正在使用 Dev-C++,我想用我的 C++ 程序编写一个文本文件。但问题是我的程序没有创建文本文件。
而是创建一个名为“026.Writing-to-Files-With-Ofstream.o”的文件。 (我的 cpp 文件的名称是:026.Writing-to-Files-With-Ofstream.cpp)
这不是我想要的。
Dev-C++ 也没有给我任何错误或警告。
我尝试使用 CodeBlocks,结果还是一样。它创建一个“.o”文件而不是文本文件。
这是我的代码:
#include <iostream>
#include <fstream>
int main(){
std::ofstream file ("hello.txt");
file << "Hello There!"; //line 5
file.open("hello.txt"); //line 6
return 0;
}
我什么都试过了。桌面或我的工作目录中没有任何内容。我换了线(5 和 6)。我真的需要你的帮助。
你做得太过分了
std::ofstream file ("hello.txt");
此行创建 ofstream 并打开它进行写入。当流打开写入时,它在磁盘上的内容被清空!
file << "Hello There!";
这就像向 ofstream 打印一些东西。通常,它存储在尚未保存到磁盘或显示在屏幕上的缓冲区中。 (要实际将某些内容保存到磁盘,您需要 endl
、flush
或关闭文件。文件在打开它的块结束时关闭,或者当您明确关闭它时。)
file.open("hello.txt"); //line 6
您再次打开文件进行输出,从而清空磁盘上的内容,并清空缓冲区。
}
缓冲区中的所有内容都保存到磁盘中。但是缓冲区里什么都没有,因为你又打开了文件!
您应该删除第 6 行。
我在这里看到 2 个问题:
首先,您刚刚编译了代码,所以输出是一个名为“026.Writing-to-Files-With-Ofstream.o”的编译目标文件。你需要 运行 它。
其次,代码并不完全正确。您在执行 std::ofstream file("hello.txt");
时已经打开了文件,因此不需要第 6 行。您需要在写入文件之前打开文件。另外写完后需要关闭文件:file.close();
我解决了!我用开始菜单的搜索选项搜索了所有Windows files/folders。花了很长时间(10 分钟),但我终于找到了文件的位置。它位于名为 "VTRoot" 的文件夹中。感谢您的帮助
我是 Whosebug 的新手。
我正在使用 Dev-C++,我想用我的 C++ 程序编写一个文本文件。但问题是我的程序没有创建文本文件。
而是创建一个名为“026.Writing-to-Files-With-Ofstream.o”的文件。 (我的 cpp 文件的名称是:026.Writing-to-Files-With-Ofstream.cpp)
这不是我想要的。
Dev-C++ 也没有给我任何错误或警告。
我尝试使用 CodeBlocks,结果还是一样。它创建一个“.o”文件而不是文本文件。 这是我的代码:
#include <iostream>
#include <fstream>
int main(){
std::ofstream file ("hello.txt");
file << "Hello There!"; //line 5
file.open("hello.txt"); //line 6
return 0;
}
我什么都试过了。桌面或我的工作目录中没有任何内容。我换了线(5 和 6)。我真的需要你的帮助。
你做得太过分了
std::ofstream file ("hello.txt");
此行创建 ofstream 并打开它进行写入。当流打开写入时,它在磁盘上的内容被清空!
file << "Hello There!";
这就像向 ofstream 打印一些东西。通常,它存储在尚未保存到磁盘或显示在屏幕上的缓冲区中。 (要实际将某些内容保存到磁盘,您需要 endl
、flush
或关闭文件。文件在打开它的块结束时关闭,或者当您明确关闭它时。)
file.open("hello.txt"); //line 6
您再次打开文件进行输出,从而清空磁盘上的内容,并清空缓冲区。
}
缓冲区中的所有内容都保存到磁盘中。但是缓冲区里什么都没有,因为你又打开了文件!
您应该删除第 6 行。
我在这里看到 2 个问题:
首先,您刚刚编译了代码,所以输出是一个名为“026.Writing-to-Files-With-Ofstream.o”的编译目标文件。你需要 运行 它。
其次,代码并不完全正确。您在执行 std::ofstream file("hello.txt");
时已经打开了文件,因此不需要第 6 行。您需要在写入文件之前打开文件。另外写完后需要关闭文件:file.close();
我解决了!我用开始菜单的搜索选项搜索了所有Windows files/folders。花了很长时间(10 分钟),但我终于找到了文件的位置。它位于名为 "VTRoot" 的文件夹中。感谢您的帮助