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.
我怎样才能解决这个问题?
问问自己是什么getline...是的,它得到一条线.
所以第一次调用"获取"整行"3 10",第二次调用获取文件中的下一行:"1"
您应该使用>>运算符从文件中读取传入的值.这也将消除混乱atoi()和char指针的需要.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |