【发布时间】:2021-05-02 02:25:25
【问题描述】:
例如,如果我写入的文件不在我的
int main(int argc, char** argv) {
fstream my_file;
if (argc>1)
{
my_file.open("my_file.txt", ios::out);
cout << "File1 created successfully!"<<endl;
}
my_file << "Guru99";
my_file.close();
cout<<"Done"<<endl;
return 0; }
它会把它放在内存中还是放在 dev/null 类型的区域中?
【问题讨论】:
-
如果文件未打开,则流将处于错误状态,您尝试写入的任何内容都会失败。
-
如果我运行代码它不会给出任何错误,我不想写任何东西(这很好)。只是好奇如果没有打开和使用
-
回复。
"it does not give any error":你需要check for errors。 -
不,就像我说的那样,流将处于错误状态,任何地方都不会存储任何内容。换句话说,
my_file.fail()将返回true。此外,my_file.is_open()将返回false。您的程序不需要自动显示任何类型的实际错误或以任何其他方式握住您的手。这种行为有据可查,程序员可以根据自己的选择来处理错误。特别是在这些情况下,不会引发异常。 -
好的,知道了。但是有什么办法记忆被这种方式堵塞吗?任何缓冲区,它连续存储给定数据以在内存中打印?或者它只是忽略要打印的给定字符串并将错误标志设置为 true?
标签: c++ file file-handling iostream