Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中读取文本文件的前N行_C_Fgets - Fatal编程技术网

在C语言中读取文本文件的前N行

在C语言中读取文本文件的前N行,c,fgets,C,Fgets,我试图解析一个文件中的一些结果,并在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_str

我试图解析一个文件中的一些结果,并在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\u string一直指向文件的第一行,并且在while循环中没有进展。我做错了什么?

I==0
时,将执行
else
分支,因为
I==1
是false

您可能需要再添加一个

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

else
分支将在
i==0
时执行,因为
i==1
为false

您可能需要再添加一个

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

如果是第一轮,您将输入两个
。当
i
从0变为1时,您需要一个
else
来告诉编译器不要输入第二个
if

if (i==0){
    some_variable = ((int) atoi(line_string));
    i++;
}
else if (i==1){

如果是第一轮,您将输入两个
。当
i
从0变为1时,您需要一个
else
来告诉编译器不要输入第二个
if

if (i==0){
    some_variable = ((int) atoi(line_string));
    i++;
}
else if (i==1){

if(i==0){…i=1;..}else if(i==1){…i=2;..}else{…}
。我没有使用fgets的经验,这似乎是一个愚蠢的错误。我应该删除吗?
if(i==0){…i=1;..}else if(i==1){…i=2;..}else{…}
。我没有使用fgets的经验,这似乎是一个愚蠢的错误。我应该删除吗?