首页 > 解决方案 > 从C中的文本文件中读取前N行

问题描述

我正在尝试解析文件中的一些结果,并在 C 程序中读取它的前两行。这是我正在做的事情:

int i=0;
while (fgets(line_string, line_size, fp) != NULL){
    if (i==0){
        some_variable = ((int) atoi(line_string));
        i++;
    }
    if (i==1){
        some_other_variable = ((int) atoi(line_string));
        i++;
    }
    else{
        break;
    }
}

但问题是line_string一直指向文件的第一行,并且在 while 循环中没有进展。我究竟做错了什么?

标签: cfgets

解决方案


当因为为假else时分支将被执行。i==0i==1

您可能还想再添加一个else

int i=0;
while (fgets(line_string, line_size, fp) != NULL){
    if (i==0){
        some_variable = ((int) atoi(line_string));
        i++;
    }
    else if (i==1){ /* add "else" here */
        some_other_variable = ((int) atoi(line_string));
        i++;
    }
    else{
        break;
    }
}

推荐阅读