繁体   English   中英

从 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为假。

您可能还想再添加一个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 s。 i从 0 变为 1 时,您需要一个else来告诉编译器不要输入第二个if

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM