Я пытаюсь ввести строку, а затем целое число, а затем строку снова, но когда последний cin получает строку, и я нажимаю кнопку ввода, он сбой или выдается случайным образом на бесконечность. что не так?C++ getline не получает вход
int main(){
string a= "", b = "";
int n1 = 0, n2 = 0;
getline(cin, a);
cin >> n1;
//when i input the next like it outputs randomly without continuing with the next like why?
getline(cin, b);
//it doesn't let me to input here coz it's outputting some random strings.
cin >> n2;
return 0;
}
Я ценю за вашу помощь, спасибо.
'он выходит из строя или выходы randomly' У меня есть ощущение, вы не показываете код, который используете, потому что код выше не должен вылетать или даже выводиться. В любом случае 'getline (cin, b);' не делает то, что, по вашему мнению, делает, у вас, вероятно, есть новая строка в вашем буфере слева от 'cin >> n1;', поэтому 'getline (cin, b); 'читает эту новую строку, а затем' cin >> n2; 'пытается прочитать все, что вы ожидали, чтобы читать в' b' и, по-видимому, терпит неудачу. – user657267
Не смешивайте 'getline' с вводом типа' cin >> '. Он никогда не работает так, как вы ожидаете. –
его фактически не сбой, а вывод случайного текста. – kobbycoder