程序仅返回最后一行

时间:2016-12-08 17:20:19

标签: c for-loop

我写了以下简单的程序。它存在一个问题,因为程序只返回最后一行。我无法弄清楚为什么会这样。有人请帮助我理解吗?

int main(int argc, char *argv[]) {
    char line[200];
    int i=0, k;

    while(fgets(line, sizeof(line),stdin)){
        i++;
    }

        for(k=0; k<i; k++){
            makeLower(line);
            printf("%s", line);
        }

    return 0;
}

1 个答案:

答案 0 :(得分:5)

替换

while(fgets(line, sizeof(line),stdin)){
        i++;
    }

        for(k=0; k<i; k++){
            makeLower(line);
            printf("%s", line);
        }

while(fgets(line, sizeof(line),stdin))
{
    makeLower(line);
    printf("%s", line);
}

或者,如果您想在输入之后打印所有行...

char all_lines[200][200]; // 200 different strings with 200 chars max in each
int line_count;
for(line_count = 0; fgets(all_lines[line_count], 200, stdin); line_count++) {};
for(i = 0; i < line_count; i++)
{
    makeLower(all_lines[i]);
    printf("%s",all_lines[i]);
};