我是c ++的新手,已经有了一个关于文件i / o的模块。我已经从我的教科书中逐字复制了这个例子,它似乎没有按预期工作,我不确定问题是什么;没有从程序输出的错误。
我尝试了不同的变体,并以此为例:
#include <fstream>
#include <iostream>
using namespace std;
string f = "marks.dat"; ifstream file;
int main() {
int first = 0;
file.open(f);
if(file.is_open()){
file >> first;
cout << first;
} else {
cout << "file has failed to open";
}
return 0;
}
.dat文件位于Assignment3.1文件夹中,编译.cpp文件。检查“file.is_open()”是错误的,我不确定是什么问题。
我的代码输出如下: Output
编辑:我已经包含了第一个= 0的声明;并包含一个file.is_open();
编辑:该文件夹的密码为: /Users/stjohn/Documents/cpp/Assignment3.1
答案 0 :(得分:1)
我认为文件没有正确读取。你首先从变量得到随机数。尝试首先初始化为零,然后查看输出。你应该明白发生了什么。
第一= 0;
答案 1 :(得分:1)
当前文件未被读取,因为它未包含在程序执行的正确目录中。通过在字符串声明中使用完整文件路径,程序将能够读取该文件。
#include <fstream>
#include <iostream>
using namespace std;
string f = "/Users/stjohn/Documents/cpp/Assignment3.1/marks.dat"; ifstream file;
int main() {
int first = 0;
file.open(f);
if(file.is_open()){
file >> first;
cout << first;
} else {
cout << "file has failed to open";
}
return 0;
}
答案 2 :(得分:0)
根据屏幕截图,我假设您正在使用Code :: Blocks for MacOS。在Project&gt;中设置工作目录属性&gt;构建目标&gt;执行工作目录。