Привет, я новичок в C ++ и пытаюсь выполнить задание, в котором мы читаем много данных из файла txt в формате
surname,initial,number1,number2
Я попросил помощи, прежде чем кто-то предложил прочитать 2 значения как строку, а затем использовать stoi () или atoi () для преобразования в int. Это отлично работает, за исключением того, что мне нужно использовать этот параметр «-std = c ++ 11» для компиляции, иначе он вернет ошибку. Это не проблема на моем собственном компьютере, который будет обрабатывать "-std = c ++ 11", но, к сожалению, для меня машины, на которых я должен представить свою программу, не имеют этой опции.
Если есть другой способ преобразовать строку в int, которая не использует stoi или atoi?
Вот мой код.
while (getline(inputFile, line))
{
stringstream linestream(line);
getline(linestream, Surname, ',');
getline(linestream, Initial, ',');
getline(linestream, strnum1, ',');
getline(linestream, strnum2, ',');
number1 = stoi(strnum1);
number2 = stoi(strnum2);
dosomethingwith(Surname, Initial, number1, number2);
}
-std=c++11
дляatoi
. Но я бы избегалatoi
, поскольку он не позволяет проверять ошибки. Лучшим решением было быstrtoi
. - person James Kanze   schedule 11.10.2013stringstream
, когда вы хотитеistringstream
? (Я все время это вижу и не понимаю, зачем кому-то это делать.) - person James Kanze   schedule 11.10.2013istringstream
для такого формата я бы использовал что-то вродеboost::split
(что по-прежнему оставляет открытым вопрос преобразования вint
). - person James Kanze   schedule 11.10.2013