【发布时间】:2017-01-30 18:03:14
【问题描述】:
问题是我有一个文本文件,有 1,000,000 到 10,000,000 行 - 每行都有一个十进制值。
我试过这段代码:
ifstream inData;
inData.open("file.txt");
std::vector<double> v1v;
double s;
while(inData>>s){
v1v.push_back(s);
cout << "Success" << endl;
}
但它似乎根本没有填满我的向量。我也尝试过这种方法(注意文件中的行数是 1048570):
double a1[1048570];
ifstream inData;
inData.open("file.txt");
for (int i=0;i<1048570;i++){
inData >> a1[i];
}inData.close();
我不明白为什么它不工作,它正在运行,但向量中没有存储任何内容。
【问题讨论】:
-
您确认文件打开操作成功了吗?如果没有,你应该从那开始。
-
除此之外,您的文件可能需要位于您正在调试的同一文件夹中。尝试使用路径,而不仅仅是文件名。如果路径失败,可能是您没有成功打开文件。
-
调试器是解决此类问题的正确工具。 在询问 Stack Overflow 之前,您应该逐行逐行检查您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
标签: c++ vector file-io ifstream