从 C 中的文本文件中读取前 N 行
Reading first N lines from a text file in C
我正在尝试解析文件中的一些结果并在 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 循环中没有进展。我做错了什么?
else
分支将在i==0
时执行,因为那时i==1
为false。
您可能想再添加一个 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;
}
}
有
if (i==0){
some_variable = ((int) atoi(line_string));
i++;
}
if (i==1){
您将在第一轮中输入 两个 if
。您需要一个 else
来告诉编译器不要输入第二个 if
,当 i
从 0 变为 1 时:
if (i==0){
some_variable = ((int) atoi(line_string));
i++;
}
else if (i==1){
我正在尝试解析文件中的一些结果并在 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 循环中没有进展。我做错了什么?
else
分支将在i==0
时执行,因为那时i==1
为false。
您可能想再添加一个 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;
}
}
有
if (i==0){
some_variable = ((int) atoi(line_string));
i++;
}
if (i==1){
您将在第一轮中输入 两个 if
。您需要一个 else
来告诉编译器不要输入第二个 if
,当 i
从 0 变为 1 时:
if (i==0){
some_variable = ((int) atoi(line_string));
i++;
}
else if (i==1){