Другие языки программирования и технологии

НЕбольшие вопросики по Си. Ребят, помогите пока желание изучать не угасло

#include <stdio.h>
main() {
int c;
c=getchar();
while (c!=EOF){
putchar(c);
c=getchar();
}
}
Сейчас изучаю учебник по Си Кернигана и Ричи, и уже застопорился здесь. Программа копирует символы из входного потока в выходной. Не могу понять почему в цикле получается, что запрос текстового потока идет бесконечное число раз. ВОт я ввел текстовый поток, вот он добрался до символа конца строки-и почему он опять у меня запрашивает поток и опять выполняет цикл, если цикл давно закончился.
Ребят, если не сложно, объясните и поясните как определить что из себя представляет EOF
Боюсь, при таком терпении желание у тебя еще раз пятьсот пропадет.. .
EOF - для чтения из файла, для текстового файла это специальный символ, а не для ввода с клавиатуры. Впрочем, его можно ввести и с клавиатуры специальной комбинацией клавиш.
P.S. "Тогда, чем является EOF для ввода с клавы и все-таки почему цикл бесконечный"
EOF в данном случае является символом с кодом 26. Керниган писал в расчете на MS-DOS, а ты, как я понимаю, работаешь в Windows... Чтобы ввести этот код, нажми два раза клавишу F6, а потом Enter.
Сергей Красильников
Сергей Красильников
92 559
Лучший ответ
Сергей Красильников "то есть EOF не верно использовать здесь? Получается нужно использовать '\n'."
Почему же неверно? Просто надо тогда вводить именно его, а не Enter. Вообще у Кернигана и Ритчи очень хороший учебник, просто встречаются вещи, исходящие из MS-DOS.
Насчет апострофа вопрос не понял.
Чем дальше в лес, тем толще партизаны.
Если сейчас уже желание может угаснуть, то что будет дальше.

У тебя условие прерывания c != EOF.
EOF - это символ конца файла, поэтому он будет повторяться, пока не встретит этот символ. Символ конца строки и символ конца файла это разные вещи. Для конца стоки есть символ '\n'.

В том же учебнике насколько я помню было написано, как направлять файл в программу через командную строку CMD:
имя_программы < входной_файл

P.S. Возьми книгу еще:
M. Уэйт, С. Прата, Д. Мартин - "Язык Си. Руководство для начинающих" (твоя тема в главе 6 хорошо расписана)

P.P.S. В таких старых книгах по Си порой встречаются ошибки в большом количестве или прыгающие описания.
Не боись! Вот книжка для новичков:

Здесь 800 страниц с упражнениями, С также присутствует, все должно быть понятно.
Керниган и Ритчи - для программистов с опытом. А работа с клавиатурой и мышью в DOS и Windows - немного по разному осуществляется.
Уо Уо
Уо Уо
35 996