我似乎无法弄清楚导致问题的原因。我希望程序从文件中读取数字列表,打印出列表,然后总计所有数字,但是当我尝试查找总数时,我无法将字符串值转换为整数值
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int total = 0;
string line;
ifstream myfile;
myfile.open("random.txt");
while (getline(myfile, line)) {
cout << line << endl;
total = total + static_cast<int>(line);
}
cout << total;
}
答案 0 :(得分:1)
你可能想要
total = 0;
for (int i = 0; i < line.length(); ++i) {
total = total + static_cast<int>(line[i]);
}
编辑: 我误解了这个问题。以下代码应该有效。 输入文件是
11 22
10
,结果是43。
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
int total = 0;
string line;
ifstream myfile;
int line_int = 0;
myfile.open("random.txt");
while (getline(myfile, line)) {
cout << line << endl;
istringstream iss(line);
while(iss >> line_int)
total = total + line_int;
}
cout << total;
}
答案 1 :(得分:1)
如果您使用的是C++ 11
,请尝试stoi
:
total = total + stoi(line);