【发布时间】:2018-09-01 11:10:20
【问题描述】:
我需要读取许多长度可变的字符串,从标准输入到 EOF。 字符串由连续的字符组成,没有空格分隔,并且没有字符串的最大长度。
使用:
char st[101];
while(scanf("%100s",st) != EOF){ //divide the input into parts of 100 chars
int i;
for(i=0; i<strlen(st);i++){
printf("%c",st[i]);
}
}
我无法判断当前字符串是前一个字符串的一部分还是新字符串的一部分,因为它全部打印在一行中(而且我不知道在哪里打印“\n”)。
样本输入:
aaaaaaaaa[...]aaaaa
bbbbbbbbb[...]bbbbb
输出:
aaaa[...]aabbbbbb[...]bbbb
有什么办法吗?
附:使用 getchar() 我无法处理 EOF。
【问题讨论】:
-
字符串是如何分开的?
-
你是什么意思,你“不能处理 EOF”?为什么不呢?
-
请提供示例输入和预期输出。
-
那就用
getline():linux.die.net/man/3/getline -
你在自相矛盾。您写了“它全部打印在一行中”,然后在评论中您写了“每行有一个字符串”