fgets skip the blank line

2019-01-25 22:09发布

I am writing a C program that use fgets to read in each line from a file. The problem is that if the file have a blank line, how to skip it to get the next line ? This is what I had try so far but it did not work.

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;
            }
        }

标签: c fgets
2条回答
该账号已被封号
2楼-- · 2019-01-25 22:12

You can also use the strcmp function to check for newline

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

Also, answering to your comment, fgets increments the file pointer after reading the line from the file. If you are running the code on a Linux system, try doing man fgets for more details.

查看更多
劫难
3楼-- · 2019-01-25 22:36

Change

if (line != "\n")

into

if (line[0] != '\n')
查看更多
登录 后发表回答