在C语言中读取文本文件的前N行
我试图解析一个文件中的一些结果,并在C程序中读取它的前两行。以下是我正在做的:在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
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的经验,这似乎是一个愚蠢的错误。我应该删除吗?