鱼C论坛

 找回密码
 立即注册
查看: 2508|回复: 3

初学C语言,有个小问题求大佬解答。关于scanf问题。

[复制链接]
发表于 2019-10-16 17:15:43 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main(void)
{
    float fl_num;

    printf("Enter a floating-point value:");
    scanf("%f\n", &fl_num);
    printf("fixed-point notation: %f\n", fl_num);
    printf("exponential notation: %e\n", fl_num);
    printf("p notation: %a\n", fl_num);

    return 0;
}


这个是我的代码。
为什么在scanf这一行中%f后面加上换行,需要这样输入才会展示出结果,
Enter a floating-point value:64.25
1   
fixed-point notation: 64.250000
exponential notation: 6.425000e+01
p notation: 0x1.01p+6

难道不应该是输入64.25后变成这样吗
Enter a floating-point value:64.25


fixed-point notation: 64.250000
exponential notation: 6.425000e+01
p notation: 0x1.01p+6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-16 17:21:50 | 显示全部楼层
本帖最后由 jackz007 于 2019-10-16 18:38 编辑

         如果不想自找麻烦,scanf() 的格式串里内容越少越好,甚至连空格都不要有,尤其是不能有回车符 '\n',不要问什么,只要作为经验记住就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-19 12:20:20 | 显示全部楼层
在scanf()下一行加 printf("\n"); 是不是会好一点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-19 15:04:26 | 显示全部楼层
scanf()操作的是输入流,从键盘读入数据。输入需要个数的数据,按照空格或者逗号隔开,最后enter结束输入。
再使用printf()函数操作输出流时,把你从键盘输入的数据输出到屏幕显示

如果你想让显示为上述你想要的结果,可以这样写
#include <stdio.h>
int main(void)
{
    float fl_num;

    printf("Enter a floating-point value:");
    scanf("%f", &fl_num);
    puts("");//这一句可以去掉,写上的目的是为了分隔输入前后的语句
    printf("fixed-point notation: %f\n", fl_num);
    printf("exponential notation: %e\n", fl_num);
    printf("p notation: %a\n", fl_num);

    return 0;
}
运行结果如下:
Enter a floating-point value:64.25

fixed-point notation: 64.2500
exponential notation: 6.42500
p notation: 0x1.010000p+6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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