C ++ Начинающий: std :: cin to std :: string - PullRequest
0 голосов
/ 03 мая 2020

Только начал изучать C ++ и столкнулся с проблемой со строками во время выполнения упражнения.

Итак, я инициализировал std::string phrase;, позволяя пользователю вводить и сохранять фразу в строку с помощью std::cin >> phrase;. Теперь моя проблема возникает, когда введенная фраза имеет пробелы, я заметил, что компьютер будет сохранять символы только до первого слова.

С фразой "sunsets are great", phrase.size() вышло только до 7, поэтому следующие слова после первого пробела не были сохранены.

Предполагается, что все упражнение сравнивает все буквы во всей введенной строке с другим набором значений. Должен ли я использовать другую функцию для этого?

Любая помощь будет оценена! :)

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

У меня также была эта проблема, когда я только начинал. всякий раз, когда вы хотите прочитать строку, я бы использовал getline.

ie

string phase
cout << "enter phase" <<endl;
getline(cin,phase);
0 голосов
/ 03 мая 2020

Если вы хотите взять всю строку, включая пробелы, вы можете использовать следующий код:

string str; // declaration
getline(cin, str);

Помните: cin.get и cin обрежут все введенные символы сразу после первый пробел.

Наслаждайтесь.

...