istream и cin.get ()

У меня есть вопрос о разнице между этими двумя частями кода:

char buffer5[5];
cin.get(buffer5, 5);
cout << buffer5;

cin.get(buffer5, 5);
cout << buffer5;

а также

char buffer4;
while (cin.get(buffer4))
{
    cout << buffer4;
}

В первом фрагменте кода код получает 5 символов и помещает его в buffer5. Однако, поскольку вы нажимаете ввод, символ новой строки не помещается в поток при вызове get (), поэтому программа завершит работу и не будет запрашивать еще один раунд из 5 символов.

Во втором фрагменте кода cin.get () ожидает ввода во входной поток, поэтому цикл не просто завершается (я думаю). Допустим, я ввожу «Apple» во входной поток. Это поместит 5 символов во входной поток, и цикл выведет все символы на выход. Однако, в отличие от первого фрагмента кода, он не останавливается даже после двух вводов, поскольку я могу непрерывно продолжать вводить.

Почему я могу непрерывно вводить последовательности символов в терминал во втором фрагменте кода, а не в первом?

Ответы на вопрос(1)

Ваш ответ на вопрос