2014-09-26 5 views
2

파일에서 각 행을 읽으려면 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; 
      } 
     } 

답변

6

변경

if (line != "\n") 

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

고맙습니다. 작동 중입니다. 그러나 나는 이해하지 못한다. 라인 배열을 증가시키는 것은'for (i = 0; i user4075830

6

에 당신은 또한 당신의 의견에 응답,

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

또한 개행 문자를 확인하기 위해 strcmp와 기능을 사용할 수 있습니다, 증분는 fgets th를 읽은 후 파일 포인터 파일에서 e 줄. Linux 시스템에서 코드를 실행하는 경우 자세한 내용은 man fgets을 시도하십시오.

+0

과 같아야하기 때문이다. 좋은 접근 방식은 여러 시스템에서 작동합니다. – LeoPucciBr

관련 문제