我的问题如下:我需要scanf来读取多行用户输入 . 用户可以输入由空格或换行符分隔的任何字符组合 . 我的目标是获取由whitspace或换行符分隔的每个输入,并通过printf处理它并输出 . 但是,我不允许一次存储多个输入 . 我的问题是:每次用户按下回车键时,scanf会读取整行,因为我在while循环中有scanf!= EOF . 但是,在用户按下EOF之前,我不希望scanf读取所有输入行 . 这可能吗?以下是一些示例:
一些伪代码:
User Input:
cat dog mouse rabbit
snake dog
pink bob
joke*/
//Some pseudo code:
char input[100];
while (scanf("%s", input) != EOF) {
printf("%s", input);
}
总之,我不希望scanf在用户按下enter时读取,因为如果是,则printf将激活,但仍然允许用户输入内容 . 有没有办法绕过这个?注意:我必须使用scanf,我不能在一个数组中存储多个单独的输入(如狗或猫) . 谢谢 .
1 回答
只需使用一个二维数组,其中每一行都存储一行输入字符串 . 至于接受输入,请要求用户输入他/她将给出的行数并循环通过它 .