【发布时间】:2020-04-06 11:06:27
【问题描述】:
我正在尝试在以下param1,param2,param3 中获取用户的输入
问题是我不允许使用scanf。我想将这 3 个参数检索到 3 个不同的变量中,但是:
- 我不知道如何获取它们,因为它们用逗号分隔
- 我无法很好地使用 sscanf,从我所见,我认为 fgets 不能帮助我。
例如:
char a1, a2, a3;
printf("Enter data\n");
sscanf(input,"%[^,],%[^,],%[^,]", &a1, &a2, &a3);
我没有被要求输入我想要的参数。我这里有什么遗漏吗?
【问题讨论】:
-
param1,2,3 类型是什么?显示可重现的代码。
-
你说:“我不允许使用 scanf。”嗯……当你不能使用
scanf时,你认为你可以使用sscanf吗?我猜你的老师当时想让你读一个字符,然后自己做解析 -
你可以使用
fscanf()和stdin吗? -
@4386427 是的,我被允许。
-
您可以使用
fgets()将用户输入从标准输入读取到您的输入缓冲区,然后使用 sscanf() 解析它(或手动使用 strtok())