Посмотрите на это:
if(c != ' ') {
// ...
} else if(c == '\n') {
// WILL NEVER BE REACHED
}
Если c == '\n'
, то c != ' '
равно также верно , что означает, что второй блок будет пропущен, а первый блок будет запущендля всех '\n'
символов (т.е. они будут напечатаны).
Другие ответы об окончаниях строк неверны.C FILE *
s, не открываемые в двоичном режиме, позаботятся о EOL для вас.Если у вас есть файл из DOS, и вы читаете его в Unix, это может создать проблемы, но я сомневаюсь, что это ваша проблема здесь, и если бы он обрабатывал его, он мог бы быть немного сложнее, чем показанные здесь ответы.Но вы можете пересечь этот мост, когда достигнете его.