gpt4 book ai didi

c - scanf 读取输入太快出现问题?

转载 作者:行者123 更新时间:2023-11-30 16:35:20 25 4
gpt4 key购买 nike

我的问题如下:我需要 scanf 来读取多行用户输入。用户可以输入由空格或换行符分隔的任意字符组合。我的目标是获取由空格或换行符分隔的每个输入,并对其进行处理并通过 printf 输出。但是,我不允许一次存储多个输入。我的问题是这样的:每次用户按 Enter 时,scanf 都会读取整行,因为我在 while 循环中使用 scanf != EOF。但是,我不希望 scanf 读取所有输入行,直到用户按 EOF。这可能吗?以下是一些示例:

一些伪代码:

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 并且无法在单个数组中存储多个单独的输入(例如狗或猫)。谢谢。

最佳答案

只需使用一个二维数组,其中每行存储一行输入字符串。至于接受输入,请用户输入他/她将给出的行数并循环遍历它。

#include<stdio.h>
void main(){
char inp[10][50];
int i,j,n;
printf("\nenter the number of lines: ");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf(" %[^\n]s",inp[i]);
}
//for printing it out.. follow the same with printf
printf("\nthe strings are:\n");
for(i=0;i<n;i++){
printf("%s\n",inp[i]);
}
}

关于c - scanf 读取输入太快出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48968037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com