C ++:从文本文件中读取并转换为int问题?

时间:2010-10-15 21:24:01

标签: c++ string

我有这个代码从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 ??

1 个答案:

答案 0 :(得分:2)

请注意,您将\t(制表符)作为分隔符传递给getline。您确定在输入文件中使用了标签吗?如果您使用空格或任何其他字符,则所有输入都将转到name,而您的result将为空,这将使number1未定义。我怀疑这就是你无处不在的原因。