Преобразование string в int через stringstream
Долгое время пытался преобразовать string в int. На данный момент пытаюсь разобраться с номером абонента. При использовании stoi выбивает ошибку, а при istringstream то, что на скрине( он неверно преобразовывает ). И при этом нужно преобразованное запихнуть в массив (меняю только номер абонента):
#include <iostream>
#include <sstream>
#include <string>
#include <windows.h>
#include <fstream>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
stringstream num;
string abon;
int numb[25];
ifstream f("АТС.txt");
int v, i = 0;
while (f) {
stringstream num;
string str;
getline(f, str);
num << str;
num >> abon >> numb[i];
cout << str << endl;
cout << "после преобразования:" << numb[i] << endl;
i++;
}
f.close();
return 0;
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Вы читаете в
int numb[25];
а int помещает число не более 2 с небольшим миллиардов. Вы же пытаетесь в него запихнуть нечто 12-значное. Вот он и получает максимально представимое в int значение, и поток переходит в состояние ошибки и больше ничего не читает.
