Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помощь на с++

Тимофей Заикин Ученик (52), на голосовании 1 день назад
почему у меня запрашивается сначала на первом cin.get() Enter запрашиватся а на втором cin.get() не запрашивается/

Код:

#include <iostream>
#include <string>
using namespace std;
int main() {
setlocale(LC_ALL, "rus");
cout <<"Привет"<<endl;
cout <<"Тебя приветствует бот для поиска каритинок по определённой тематике"<<endl;
cout <<"Нажмите Enter для продолжения...";
cin.get();
cout <<"вибирите категорию каритинок:"<<endl;
cout <<"cars,sea,forest,house,yacht,hotel,computer,road"<<endl;
cout <<"Ввод категории:";
string category;
cin >> category;
if (category == "cars") {
cout <<"спорт карт";
}
else if (category == "sea") {
cout <<"океан";
}
else if (category == "forest") {
cout <<"лес";
}
else if (category == "house") {
cout <<"дом";
}
else if (category == "yacht") {
cout <<"яхта";
}
else if (category == "hotel") {
cout <<"отель";
}
else if (category == "computer") {
cout <<"road";
}
else {
cout <<"Неправильно введена категория"<<endl;
}
cout <<"для выбора другой категории нажмите Enter..."<<endl;
cin.get();
cout <<"Пргорамма ещё даделывается"<<endl;
return 0;
}
Голосование за лучший ответ
Андрей Высший разум (465153) 1 месяц назад
Полагаю, в буфере ввода остался Enter от cin >> category. Который и вводится вторым cin.get().

Если ты вводишь через >>, то перед использованием других способов ввода имеет смысл очищать входной буфер:
 cin >> category;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
https://ru.stackoverflow.com/questions/562229/Очистка-буфера-ввода-cin
Похожие вопросы