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 символов во входной поток, и цикл выведет все символы на выход. Однако, в отличие от первого фрагмента кода, он не останавливается даже после двух вводов, поскольку я могу непрерывно продолжать вводить.
Почему я могу непрерывно вводить последовательности символов в терминал во втором фрагменте кода, а не в первом?