Как считать из stdin текст, пока не будет нажато Ctrl+D - C (СИ)
Формулировка задачи:
как считать из stdin текст, пока не будет нажато Ctrl+D?
Решение задачи: «Как считать из stdin текст, пока не будет нажато Ctrl+D»
textual
Листинг программы
char buffer[4096];
// fgets вернет NULL при ошибке или eof.
while (fgets(buffer, 4096, stdin) != NULL) {
// Ввод находится в buffer, вместе с символом переноса строки
// можно, например, избавиться от символа переноса
buffer[strlen(buffer) - 1] = '\0';
printf("%s\n", buffer);
}
// проверить на ошибку
if (ferror(stdin))
printf("An error has occured");
Объяснение кода листинга программы
- Объявлена переменная
bufferтипаcharс размером в 4096 байт. - Задана инструкция
while, которая будет выполняться до тех пор, покаfgetsне вернетNULL. - В условии
whileпроисходит сравнение результатаfgetsсNULL. - В теле цикла
whileнаходится введенный текст, включая символ новой строки. - В конце программы выводится сообщение об ошибке, если была допущена ошибка ввода.