Как считать строку
Я в консоль ввожу строку age 22
string msg;
cin >> msg;
if (msg.compare("age") == 0)
{
char str[20];
int i;
sscanf(msg.c_str(), "%s %d", str, &i);
printf("%s -> %d\n", str, i);
}
слово age выводит правильно, а в цифрах мусор, помогите, как это можно реализовать
Ответы (1 шт):
Автор решения: DmitryK
→ Ссылка
По умолчанию строка из потока считывается до разделителя, т.е. в том числе до пробела. Поэтому нужно считать строку, а потом ещё число.
int i;
string msg;
cin >> msg >> i;
cout<< msg << " -> " << i;
Или считывать всю строку (до символа '\n') функцией 'getline()', и дальше форматировать как у вас в коде.
int i;
string msg;
char str[20];
getline(cin, msg);
sscanf(msg.c_str(), "%s %d", str, &i);
printf("%s -> %d\n", str, i);