#include <stdio.h>
int main ()
{
double a=0;
char b=0;
scanf ("%d%c",&a,&b);
printf ("%d,%c", a, b);
return 0;
}
这是我编写的快速测试程序的代码,用于使用 C 中的 scanf 函数。我试图让用户输入类似 78X + 5 = 19 的东西(然后按回车键(,然后将其解析为变量 a、b 和 c,在这种情况下 a=78、b=5、c=19。在示例代码中,当我输入 78X 时,c 不会将值存储到 b,只打印"78",然后终止。为什么它不会将值存储到 b?
如果您的输入是 75x,那么下面是读取值并将其分别存储在 a(75)
和 b(x)
中的代码
#include <stdio.h>
int main ()
{
int a=0;
char b=0;
scanf ("%d%c",&a,&b);
printf ("%d%c", a, b);
return 0;
}
格式字符串中的,
很重要。字符串%d,%c
将与输入78,x
匹配,但不匹配78x
。
您还需要使用%f
来扫描和打印double
。 使用%d
会导致未定义的行为(可能表现为b
似乎没有出现(。 要么更改为%f
,要么将double
更改为int
。