VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 548|回复: 2

[求助] scanf_s

[复制链接]
59_avatar_middle
在线会员 发表于 2018-4-24 21:52:24 | 显示全部楼层 |阅读模式
5驿站币
  scanf_s("%f\n", &a);想请教一下scanf_s里面加了\n是什么意思不是,转到下一行的意思吗?
当scanf_s("%f\n", &a)   在运行界面打出 \n 后 :显示输入数字1=输入数字2=输入数字3=输入数字4=输.....
为什么代码printf里面并没有加\n,调试后输入数据还会自动跳转到下一行?
#include<stdio.h>
int main()
{
        float a, b, sum = 0;
        int i = 1;
        printf("平均数=");
        scanf_s("%f", &b);
        scanf_s("%f", &b);
        for (i; i <= 39; i++)
        {
                printf("输入数字%d=", i);
                                                       //scanf_s("%f\n", &a);
                scanf_s("%f", &a);
                sum += (a - b)*(a - b);
        }
        printf("平方差和=%f", sum);
        while (1);
        return 0;
}

最佳答案

查看完整内容

scanf 是一个匹配模式的函数咯,例如:scanf("%d and %d",&a, &b); 那我们输入的格式就是:1 and 2。 那 scanf("\n"); 就要匹配换行符啦。 为了避免下一次的 scanf 直接读取 \n 而结束,保证每次都等待键盘输入…… 不过这是我见过的最笨的办法了…… 次笨的办法是使用 getchar() 最好的办法是在 scanf 的格式说明中,前置一个空格,也就是scanf(" %c", &var) ;百分号之前有一个空格…… 这样 scanf 会首先过滤掉所有的空 ...




上一篇:求帮助
下一篇:文件打开
77_avatar_middle
online_vip 发表于 2018-4-24 21:52:25 | 显示全部楼层
scanf 是一个匹配模式的函数咯,例如:scanf("%d and %d",&a, &b); 那我们输入的格式就是:1 and 2。
那 scanf("\n"); 就要匹配换行符啦。

为了避免下一次的 scanf 直接读取 \n 而结束,保证每次都等待键盘输入……
不过这是我见过的最笨的办法了……
次笨的办法是使用 getchar()
最好的办法是在 scanf 的格式说明中,前置一个空格,也就是scanf(" %c", &var) ;百分号之前有一个空格……
这样 scanf 会首先过滤掉所有的空格、制表符和换行符……
59_avatar_middle
ico_lz  楼主| 发表于 2018-4-24 23:22:21 | 显示全部楼层
Health 发表于 2018-4-24 22:34
scanf 是一个匹配模式的函数咯,例如:scanf("%d and %d",&a, &b); 那我们输入的格式就是:1 and 2。
那 s ...

谢谢层主如此详细的解答。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-7-16 17:33

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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