fgets пропускает пустую строку

Я пишу программу C, которая использует fgets для чтения в каждой строке из файла. Проблема в том, что если файл имеет пустую строку, как пропустить ее, чтобы получить следующую строку? Это то, что я пытался до сих пор, но это не сработало.

char line[100]; FILE *filePtr = fopen(filename, "r"); while(fgets(line, sizeof(line), filePtr) != NULL) //read each line of the file { if (line != "\n") { //do something } else { continue; } } 

+ Изменить

 if (line != "\n") 

в

 if (line[0] != '\n') 

Вы также можете использовать функцию strcmp для проверки новой строки

 //Check for dos and unix EOL format if(strcmp(line,"\n") || strcmp(line,"\r\n")) { //do something } else { continue; } 

Кроме того, отвечая на ваш комментарий, fgets увеличивает указатель файла после прочтения строки из файла. Если вы используете код в системе Linux, попробуйте выполнить man fgets для получения более подробной информации.