Возьмите свой второй пример, т.е.
while ((c = getchar()) != EOF) {
printf("\'\\n\' character in c: %d\n", c == '\n');
}
и разверните цикл. Это станет:
c = getchar();
if (c == EOF) return 0;
printf("\'\\n\' character in c: %d\n", c == '\n');
c = getchar();
if (c == EOF) return 0;
printf("\'\\n\' character in c: %d\n", c == '\n');
c = getchar();
if (c == EOF) return 0;
printf("\'\\n\' character in c: %d\n", c == '\n');
... and so on ...
Теперь сравните это с вашей первой версией, и вы увидите, что разница в том, что второй пример делает вызов getchar
между printf
, тогда как в первом примере есть только один [ 114] вызова.
Другими словами - в первом примере читается только символ 'a'
, в то время как во втором примере сначала читается 'a'
, затем читается '\n'
, а затем читается .... (что бы вы ни печатали дальше)
Почему бы просто не исправить ошибки? На этой ноте, какие ошибки вы получаете?
Этот файл предоставляет информацию, такую как номер версии, которая определенно необходима для использования сборки, которую вы собрали.