如何逐行阅读输入文本,直到C中的EOF?

时间:2019-09-17 00:52:30

标签: c algorithm

我想逐行从输入中读取文本,而不要读取以'a'开头的任何行,然后将其余文本存储在数组中。我不确定如何执行此操作,因为我的程序仅终止读取文本的第一行。可以说文字是:

  

你好世界\ n你好世界\ n你好世界'

然后我的输出应该是:

  

hello world \ n hello world

char line[1000];
int line_len = 0;
while ((c = getchar()) != '\n'){   
     line[line_len++] = c;
}
return 0;

1 个答案:

答案 0 :(得分:2)

也许使用getline可能会更容易:

char *line = NULL;
size_t len = 0;
ssize_t nread;

while ((nread = getline(&line, &len, stdin)) != -1) {
    if (nread == 0 || line[0] != 'a') {
        printf("Got a valid line: %s", line);
    }
}

free(line);