c - C语言中如何让scanf一次只读取一个字符

标签 c

我的问题是,当我要求用户给我一个数字时,用户一次可以写多个数字(16548,5484等),所以我的程序会保存这些输入,并在下次需要时使用 scanf 它会自动读取用户编写的下一个(在我的第一个示例中它将是“6”)。我不希望这样,我希望用户只能写一个字符,或者如果有办法删除这些额外的字符,这样它只会读取第一个字符,这也可以解决我的问题。

最佳答案

您可以尝试 int 或 float 值,结果将相同,您应该进行舍入

    #include<stdio.h>
    #include<math.h>
    void main()
    {
        float v;
        printf("Enter a number : "); 
        scanf("%f",&v);
        while(1)
        {
            if(v<10.0)
            {
                printf("%.f",floor(v));
                break;
            }
            else
            {
                v = v / 10.0;
            }
        }


}

关于c - C语言中如何让scanf一次只读取一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52429656/

相关文章:

c - 如何在 Linux 上实现字符串命令输出以及执行同一二进制文件

objective-c - 为什么某些 C 数学表达式需要将常量显式标记为 float ?

c - C中的通用列表使用void指针

c - 关于linux内核__asm__语法

c - 在 C 函数中删除链表节点不会传输到调用函数

c - Facebook 采访 : Implement readline function

c - 使用 MPI 收集来自不同流程的小矩阵部分

c - 为什么提到的代码在 C 中是未定义的行为

c - YACC 和 Lex 未定义对 `yylex' 的引用

我们可以通过指针改变一个用const定义的对象的值吗?