我有这个代码从marks.txt文件中读取。
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
int main () {
string name,result;
int number1;
ifstream myfile ("marks.txt");
if (myfile.is_open())
{
while ( !myfile.eof() )
{
getline (myfile,name,'\t');
getline (myfile,result,'\t');
stringstream(result) >> number1;
cout << number1;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
我的marks.txt文件包含:
john 20
但是当我运行程序时。 Number1输出是36.如何正确地将结果字符串转换为int ??
答案 0 :(得分:2)
请注意,您将\t
(制表符)作为分隔符传递给getline
。您确定在输入文件中使用了标签吗?如果您使用空格或任何其他字符,则所有输入都将转到name
,而您的result
将为空,这将使number1
未定义。我怀疑这就是你无处不在的原因。