染念Blog
scanf(格式控制字符串, 地址表列);

scanf(”%f%f%f”,&a,&b,&c);   对
scanf("%f%f%f",a,b,c);   错 //缺少&
scanf("%d,%f\n",&a,&b);错 //不能有\n
scanf("%7.2f",&a);错  //只能写%f

//对于scanf("a=%f,b=%f,c=%f",&a,&b,&c);
       1 3 2↙                     错
       a=1,b=3,c=2↙        对(逗号)
       a=1 b=3 c=2↙        错

//对于scanf("a=%f  b=%f  c=%f",&a,&b,&c);
 a=1  b=3  c=2↙(两个空格)

//对于scanf(“a=%f: b=%f: c=%f",&a,&b,&c);
 a=1  b=3  c=2↙(冒号和空格)

输入字符时,两个字符之间不需要空格或其他分隔符;
输入数字时,两个数值之间需要输入空格以区分两个数
因此输入数字,最好这么写

scanf(“%d,%d,%d",&a,&b,&c);

非常重要:

scanf(“%d",&a);//输入一个数字时候没啥问题

scanf(“%c",&a);//就有问题了,会把回车也读进去,解决方法1.加个过滤掉回车的条件ASCII..2.自己加sacnf的分隔符
scanf(“%c,",&a)
。。。。于是你能发现,有时候自定义分割号,能够解决好多莫名其妙的错误!

新加注意点:
**scanf对于float类型必须用%f,double必须用%lf

对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。**

版权属于:染念
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2021年04月29日 09:06
0
发表评论
  1.     Windows 10 /    Google Chrome

    折腾02

目录

来自 《c中scanf函数注意点》

染念

Big高性能计算、small前端...
168 文章数
625 评论量
4 分类数
172 页面数
已在风雨中度过 6年107天15小时57分
© 2023 染念Blog
浙ICP备19020194号-1
© 2023 染念Blog
浙ICP备19020194号-1