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


183 文章数
695 评论量
4 分类数
186 页面数
已在风雨中度过 7年284天1小时48分
目录
来自 《c中scanf函数注意点》
© 2024 染念的笔记
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部
© 2024 染念的笔记
浙ICP备19020194号-1
暗黑模式
暗黑模式
评论
返回顶部