c中scanf函数注意点

简介: c中scanf函数注意点
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,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指
目录
相关文章
|
8月前
|
C语言
你真的学会了printf和scanf函数吗?
你真的学会了printf和scanf函数吗?
|
8月前
|
编译器 C语言 C++
scanf函数
该文介绍了C语言中`scanf`函数用于输入变量值,而`printf`函数用于输出变量值。`scanf`在读取数值时会自动过滤空白字符,允许数据间有空格或换行,不影响解析。`scanf`返回值表示成功读取的变量数,0表示未读取或匹配失败,EOF表示读取错误或文件结尾。常见占位符包括 `%c`(字符)、`%d`(整数)、`%f`(浮点数)、`%s`(字符串)和`%[]`(指定字符集)。对于`%c`,不会忽略空白字符,但可加空格跳过前导空白。文章还提及在VS2022中,`scanf`被认为是不安全的,推荐使用`scanf_s`,并提供了如何在VS中使用`scanf`的解决方法。
156 1
scanf和getchar区别
scanf和getchar区别
309 0
|
缓存
scanf和printf函数
scanf和printf函数
168 0
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
while(~scanf(“%d“,&a)&&~a)用法
while(~scanf(“%d“,&a)&&~a)用法
137 0
|
IDE 编译器 开发工具
VS 调用 scanf 的正确姿势
VS 调用 scanf 的正确姿势
402 0
VS 调用 scanf 的正确姿势
|
人工智能
scanf函数与getchar函数区别
scanf函数与getchar函数区别
164 0
|
C语言
论Scanf、Gets、Getchar的区别
论Scanf、Gets、Getchar的区别
188 0