0
Я обнаружил очень своеобразное поведение. Я новичок в C++, поэтому я нашел это странным и не смог объяснить его после прочтения документов на cin.ignore.Зачем нужен запрос cin.ignore()?
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
cin.ignore(10000, '\n');
return 0;
}
Приведенный выше код вводит. Если вы добавите int test; CIN >> тест; прямо над cin.ignore, он не будет принимать входные данные.
Не слишком уверен, что вы имеете в виду ... вы бы уточнили? – user2316667
Предположим, что пользователь вводит «3.14» (без кавычек) и нажимает на возврат. Затем входной буфер содержит «3.14 \ n» (в нотации C++). Чтение «float» потребляет «3,14» и оставляет «\ n». Затем вызов «игнорировать» потребляет «\ n». –
Это не объясняет, почему приведенный выше код приостанавливает и ждет ввода пользователем ввода ... Я ожидал, что он просто «потребляет» пустой буфер и перейдет. – user2316667