C ++: прочитать текстовый файл формы и преобразовать в проблему int? - PullRequest
1 голос
/ 16 октября 2010

У меня есть этот код, который читает из файла 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 Ответ

2 голосов
/ 16 октября 2010

Обратите внимание, что вы передаете \t (символ табуляции) в качестве разделителя getline. Вы уверены, что используете вкладку во входном файле? Если вы используете пробел или любой другой символ, все входные данные перейдут в name, а ваш result будет пустым, что оставит number1 неопределенным. Я подозреваю, что по этой причине вы получаете 36 из ниоткуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...