2014-09-26 279 views
2

我正在寫一個C程序,它使用fgets從文件中讀取每一行。問題是,如果文件有一個空行,如何跳過它來獲得下一行?這是我到目前爲止的嘗試,但沒有奏效。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; 
      } 
     } 

回答

6

變化

if (line != "\n") 

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

謝謝,它現在工作。但我不明白,增加行數組是因爲我應該像'for(i = 0; i user4075830 2014-09-26 04:32:11

6

您還可以使用strcmp函數檢查換行符

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

此外,在回答您的意見,FGETS增量讀取th後的文件指針e從文件中刪除。如果您在Linux系統上運行代碼,請嘗試執行man fgets以瞭解更多詳細信息。

+0

很好的方法可以在多個系統上運行。 – LeoPucciBr 2016-12-15 15:30:32