扫描 C 语言中的连续输入


#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

最新更新