scanf函数

Posted yhc99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf函数相关的知识,希望对你有一定的参考价值。

函数名:scanf
功 能: 执行格式化输入 
用 法: int scanf(char *format[,argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:      scanf("<格式化字符串>",<地址表>);

a.当输入的值为数字类型时

int a,b,c; 
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d/n",a,b,c);

 

 输入值时中间可以加空格,加tab键加大写逗号,但不可加小写逗号.且大写逗号是加在数字后面不能加在空格后面。

3,4,5 ↙(输入a,b,c的值)
或者
3,□4,□5 ↙(输入a,b,c的值)
3,□□□4,□5 ↙(输入a,b,c的值) 
...... 
都是合法的,但是","一定要跟在数字后面,如: 
3□,4,□5 ↙就非法了,程序出错。

b.当输入的值为字符类型时。空格和转义字符被视为有效字符

 

scanf("%c%c%c",&c1,&c2,&c3); 

 

 输入:a□b□c↙ 
结果:a→c1,□→c2,b→c3 (其余被丢弃)

 

*在使用scanf()函数输入数据时不能规定实数的精度。

例如:scanf("%6.3f",&a);

这是非法的,不能试图这样控制位数。

但可以在%号和格式控制说明符之间出现正整数,表示输入数据的宽度,如:

scanf("%2d%3d%4d",&a,&b&c);

printf("a=%d,b=%d,c=%d",a,b,c);

如从键盘输入123456789,则程序运行的结果是

a=12,b=345,c=6789

 

以上是关于scanf函数的主要内容,如果未能解决你的问题,请参考以下文章

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

在 Visual Studio 中创建构造函数的代码片段或快捷方式

同时使用scanf()函数和getchar()函数的陷阱

[C语言小白]scanf函数的细节理解与感悟

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

POJ1833 排列 调用全排列函数 用copy函数节省时间 即使用了ios同步代码scanf还是比较快