2015-11-03 195 views
0

目标是读取以下文件中的每个整数并将它们全部添加。但是由于某种原因,我似乎无法将字符串行转换为int。 代码:FStream - 读取文件内部的整数C++

#include <iostream> 
#include <fstream> 
using namespace std; 

int main(){ 

string line; 
ifstream file ("Random.txt"); 
int lines; 
int amount = 0; 
while(getline(file, line)){ 
    lines++; 
    amount += static_cast<int>(line); 
} 

cout << amount; 
return 0; 

} 

txt文件:

2 
3 
4 
6 

任何帮助,将不胜感激

回答

0

一投不这样做正确的工具,它适用于仅兼容类型。

你真正需要的是一个转换功能:

amount += std::stoi(line); 

reference docs请。

+0

感谢但我得到这个错误:[错误]“Stoi旅馆”不是“性病” –

+0

成员@TylerEsposito你有没有'#include '? –

+0

更好地直接使用'ifstream'来读取'int'。 – JSQuareD

2

不,你不能将这样的字符串转换成任何东西,真的。

如果知道该文件只包含整数,你可以阅读他们直接:

int number; 
while (file >> number) 
{ 
    ++lines; 
    amount += number; 
} 
+0

工作很好!谢谢! –