如何在文本文件的行尾找到'0'?

0 c++ string ifstream text-files string-conversion

我正在扫描文本文档,其格式如下:

3 10
1
2
2
1
3
1
1
1
2
2
顶部的前两个整数分别代表候选人数和投票数.我很难检测到投票数量的字符串,"10"

因为我在c ++工作,所以我到目前为止尝试过这样做:

string line;
int candidateTally;
int voteTally;

ifstream file("votes.txt");

//detect the candidate tally "3"
getline(file, line);
candidateTally = atoi(line.c_str());

cout << candidateTally << endl;

//output the candidate tally "10" but it's only outputting "1"
getline(file, line);
cout << line;
Run Code Online (Sandbox Code Playgroud)

我不太确定如何获取0的第二个字符串以获得完整的字符串"10"似乎getline函数在拾取0之前切断,因为这可能代表'\n'字符?我想拥有它以便它检测到'0'并将其包含在字符串中,其中包含"1",以便我可以将其转换为它应该是的int,10.

我怎样才能解决这个问题?

Rod*_*ddy 6

问问自己是什么getline...是的,它得到一条线.

所以第一次调用"获取"整行"3 10",第二次调用获取文件中下一行:"1"

您应该使用>>运算符从文件中读取传入的值.这也将消除混乱atoi()和char指针的需要.