#include <iostream>
#include <fstream>
using namespace std;
void get_input (ifstream& ifile){
std::string filename;
cout << "Input filename:";
cin >> filename;
if (ifile.fail()){
cout << "File is not found"<< endl;
}
int ID, score, count = 0;
while (1){
ifile >> ID >> score;
if (ifile.eof()) break;
++count;
}
ifile.close();
cout << ID << endl;
cout << count << endl;
cout << score << endl;
}
主:
int main(int argc, const char * argv[]) {
ifstream file;
get_input (file);
return 0;
}
我将其更改为std :: string,但计数器仍打印出0.我从具有2列的文件中获取int数据。我还需要计算文件中的行数。
答案 0 :(得分:2)
您有多个问题。 正如其他人提到的,你实际上并没有打开任何文件。
if (ifile.fail()) <<this is failing & does not get entered
而是尝试
if (!ifile.is_open())
它会显示你没有打开任何东西。 一旦打开文件就这样;
ifile.open(filename);
您的代码应该可以使用,但是我无法查看您在哪里检查换行。我会把它作为练习让你跟进。尝试搜索std :: getline。