【发布时间】:2015-03-03 14:00:11
【问题描述】:
我已经检查了几个这样的问题,例如: Link 1 和 Link 2
但是他们的回答都没有帮助我。在调试了这么多小时后,我无法检测到错误。 所以,我又在这里问了。
我的程序代码是:
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int main(){
ofstream file;
file.open("data.dat",fstream::out);
file<<fflush;
if(!file)
cout<<"error"<<strerror(errorno);
file.close();
return 0;
}
这是处理文件处理程序的主要部分。程序的其余部分处理一些数据并将其写入文件,我认为这既不相关也不影响文件处理。
有趣的是程序没有闪烁任何错误。
【问题讨论】:
-
可能文件已创建,但不在您期望的位置?
-
如果您从命令行运行该程序,则该文件将在当前目录中创建。如果从 IDE 运行它,则当前目录在项目设置中设置。
-
@Gaurav,不能保证 iostreams 设置
errno时出错。并且该文件是在当前工作目录中创建的,该目录不一定是程序所在的目录(如果您运行/bin/ls,它不会默认向您显示/bin的内容!) -
虽然有一些问题:您不应该将 fflush 写入文件。它是您用作
fflush(FILEstruct);的C 库中的一个函数。执行代码时,它只是将 1 写入文件。此外,您不应该无条件地写入文件。检查文件是否可以先打开,如果是,则写入文件并仅在这种情况下关闭它。 -
@Gaurav 好吧,卸载并不一定意味着删除配置文件。无论如何,如果您想更改此行为,请向您最喜欢的搜索引擎询问 Code::Blocks 构建路径,而不是仅仅重新安装它。