我想逐行从输入中读取文本,而不要读取以'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;
答案 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);