nkgktgkrgktrgrgtjgiortjgiorjitrgoit
答案 0 :(得分:0)
你可能做错了很多事。
1)文件numbers.txt
不存在,此代码无法检查文件是否已成功打开。
2)文件numbers.txt
存在,但不包含十个整数,以空格分隔,此代码无法检查operator>>
是否成功。
3)此代码还向std::cout
打印十个数字,没有任何分隔符。最好的情况是,你得到的输出就是一个大数字。
所以,这里至少有两三件事是错的。你需要修复所有这些:
A)确认文件已成功打开。
B)每次operator>>
次调用后,检查文件流是否为good()
。
答案 1 :(得分:0)
如果您不确定该文件是否存在,或者它是否与您的可执行文件位于同一目录中,请将您的代码修改为check if the file opened,例如:
void readFile() {
ifstream read("numbersd.txt");
if(!read) { cerr << "File didn't open..Does it exist?" << endl; return; }
...
然后,如果它没有打开,这里有一些可能发生的事情:
问题在于文件,因为代码工作正常,因为文件 numbers.txt 存在(并且它与...在同一目录中你的可执行文件)例如我使用了那个:
1
2
3
4
5
6
7
8
9
10
结果是:
C02QT2UBFVH6-lm:~ gsamaras$ g++ main.cpp
C02QT2UBFVH6-lm:~ gsamaras$ ./a.out
1 2 3 4 5 6 7 8 9 10
这是我用过的代码:
#include <iostream>
#include <fstream>
using namespace std;
class myClass {
public:
void readFile() {
ifstream read("numbers.txt");
for(int i=0;i<10;i++)
read>>sPerDay[i];
for (int i = 0;i<10;i++) {
cout << sPerDay[i] << " ";
}
cout << "\n";
}
private:
int sPerDay[10];
};
int main() {
myClass obj;
obj.readFile();
return 0;
}