Итак, в предыдущем вопросе мне сказали добавить getline, чтобы сделать так, чтобы пользователи могли использовать только один символ для оператора cin. Вот моя программа:Как я могу заставить оператор getline работать?
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <cstdlib>
char Choice;
char my_name;
using namespace std;
int main()
{
printf("You come out of darkness.\n");
printf("Confused and tired, you walk to an abandoned house.\n");
printf("You walk to the door.\n");
printf("What do you do?\n");
printf("1. Walk Away.\n");
printf("2. Jump.\n");
printf("3. Open Door.\n");
printf(" \n");
string line;
getline(cin, line);
while(line.size() != 1)
{
printf(" \n");
cout<<"Please enter one single number!\n";
printf(" \n");
getline(cin,line);
}
cin >> Choice;
printf(" \n");
if(Choice == '1')
{
printf("The House seems too important to ignore.\n");
printf("What do you do?\n");
printf("1. Jump.\n");
printf("2. Open Door.\n");
printf(" \n");
cin >> Choice;
printf(" \n");
}
}
Но когда я запускаю программу, она проходит через и я типа 12 и сказать: «Пожалуйста, введите одно единственное число!», Но потом, если я ставлю только 1, то ничего не происходит.
Что не так с программой?
Вы хотите прочитать одно нажатие клавиши, не дожидаясь входа, верно? – Kos
Прежде всего, не смешивайте старый C-style stdio с потоками C++. Возможно, он не работает так, как вы этого хотите. –