鱼C论坛

 找回密码
 立即注册
查看: 960|回复: 5

[已解决]不能同时有两个scanf存在么

[复制链接]
发表于 2020-6-2 09:45:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
当输入第一个scanf值 回车,下面不需要再输入  全部显示出来了,为什么????是不允许多个scanf存在吗?。

#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
        double cm, kg, in, lb;
        char name;
        printf("请输入您的姓名:\n");
        scanf("%c", &name);
        printf("请输入您的身高(cm):\n");
        scanf("%lf", &cm);
        printf("请输入您的体重(KG):\n");
        scanf("%lf", &lb);

        printf("=============正在转换,请您等待===============\n");
        in = cm / 30.48;
        lb = cm / 0.45359237;
        printf("%c的身高是:%.2lf(in),体重是%.2lf(lb)", name, in, lb);

}

最佳答案
2020-6-2 09:54:59
肯定是你输入错了。你的第一个scanf是读取一个字符,你是不是输入了多个字符?
那样的话,后面两个scanf会读取错误,给你的感觉好像是没有让你输入一样。
比如,abdc,第一个scanf读取a给name,然后缓冲区还有剩下的字符,程序继续执行,遇到第二个scanf,会继续冲缓冲区读取内容,但是读到的不是double,所以没有给cm赋值,第三个scanf也是如此。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-2 09:49:51 | 显示全部楼层
本帖最后由 skyddy 于 2020-6-2 09:51 编辑

有缓冲区存在 当输入完毕 按回车时 会将回车留在缓冲区 下次读取时直接读取了缓冲区的内容 ,而未读取键盘输入
可以使用
  1. while(getchar()!='\n')
  2. continue;
  3. // 在需要清除缓冲区的地方加入即可
  4. //比如你第二次scanf()之前 和其他几处需要清理的位置
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-2 09:54:59 | 显示全部楼层    本楼为最佳答案   
肯定是你输入错了。你的第一个scanf是读取一个字符,你是不是输入了多个字符?
那样的话,后面两个scanf会读取错误,给你的感觉好像是没有让你输入一样。
比如,abdc,第一个scanf读取a给name,然后缓冲区还有剩下的字符,程序继续执行,遇到第二个scanf,会继续冲缓冲区读取内容,但是读到的不是double,所以没有给cm赋值,第三个scanf也是如此。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-2 11:52:08 | 显示全部楼层
sunrise085 发表于 2020-6-2 09:54
肯定是你输入错了。你的第一个scanf是读取一个字符,你是不是输入了多个字符?
那样的话,后面两个scanf会 ...

谢谢 我在想想如何允许输入多个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-2 12:36:32 | 显示全部楼层
居家小男人≈ 发表于 2020-6-2 11:52
谢谢 我在想想如何允许输入多个字符

%s输入多个字符,遇到回车结束。
但是name需要定义为数组。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-2 12:51:40 | 显示全部楼层
sunrise085 发表于 2020-6-2 12:36
%s输入多个字符,遇到回车结束。
但是name需要定义为数组。

您说的对!我已经做出来了。。非常感谢您的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表