Другое > Программирование (любое)
Язык программирования С
LanuHum:
Вот первый пример:
--- Код ---
#include <stdio.h>
/* подсчет вводимых символов; 1-я версия */
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
--- Конец кода ---
gcc -o "hellow" "hellow.c" (в каталоге: /home/leonid/C)
Сборка прошла успешно.
./hellow
Пишу в консоли:
sdfsfgdghfg
Жму Enter - ничего
Striver:
--- Цитировать ---Это что?
--- Конец цитаты ---
Вывод программы в каждой итерации цикла. Верни первый вариант программы.
По-моему, ты не понял другой момент:
--- Код ---
getchar() != EOF
--- Конец кода ---
этот самый EOF при вводе с клавиатуры случится только, если остановить программу. В винде через Ctrl-Pause, в линухе Ctrl-C.
Именно поэтому я направлял в программу текстовый файл:
--- Код ---
D:\moe\prg\98-dmc>proba02 < aaa.txt
--- Конец кода ---
В линуксе синтаксис направления ввода такой же, попробуй. В случае с файлом, EOF случится, когда файл закончится.
Striver:
--- Цитировать ---Жму Enter - ничего
--- Конец цитаты ---
Если нужно завершение цикла по Enter, замени строку
--- Код ---
getchar() != EOF
--- Конец кода ---
на
--- Код ---
getchar() != '\n'
--- Конец кода ---
LanuHum:
--- Цитата: Striver от 05 Декабрь 2015, 14:54:15 ---
--- Цитировать ---Это что?
--- Конец цитаты ---
Вывод программы в каждой итерации цикла. Верни первый вариант программы.
По-моему, ты не понял другой момент:
--- Код ---
getchar() != EOF
--- Конец кода ---
этот самый EOF при вводе с клавиатуры случится только, если остановить программу. В винде через Ctrl-Pause, в линухе Ctrl-C.
Именно поэтому я направлял в программу текстовый файл:
--- Код ---
D:\moe\prg\98-dmc>proba02 < aaa.txt
--- Конец кода ---
В линуксе синтаксис направления ввода такой же, попробуй. В случае с файлом, EOF случится, когда файл закончится.
--- Конец цитаты ---
Если я пишу asdafsdf, а затем жму Ctrl-C, то программа завершается. Где же результат подсчёта?
LanuHum:
--- Цитировать ---Именно поэтому я направлял в программу текстовый файл:
--- Конец цитаты ---
Striver, спасибо, сообразил я.
[leonid@localhost C]$ ./hellow < test.txt
5
А, что со вторым примером?
Навигация
Перейти к полной версии