Я пытаюсь проверить строки в файле с фактическим содержимым в них и выйти в случаях, когда в строке есть две пустые строки. Это можно сделать? Этот код приводит к тому, что fgetc() не перехватывает двойные возвращения каретки/новые строки.Можно ли тестировать два новых строковых символа подряд?
Код - это фрагмент проекта C89, поэтому объявления сделаны выше фрагмента.
if ((file = fopen(fileName,"r")) == NULL)
{
free(fileName);
exit(1);
}
while (c != EOF)
{
cOld = c;
c = fgetc(file);
/* count lines */
if(c == '\n'){
newLine++;
}
/* test for two carriage returns in a row */
if(c == '\n' && cOld == '\n'){
printf("ERROR: Invalid File\n");
free(fileName);
exit(1);
}
}
Используя отладчик поможет вам решить этот вид простых проблем. –
Удобный инструмент для проверки того, содержит ли ваш файл «\ r \ n» или что-то еще, [HexDump] (http://www.fileformat.info/tool/hexdump.htm) – moffeltje
Обратите внимание, что в шестнадцатеричном ASCII, \ n '== 0A и' \ r '== 0D – moffeltje