欢迎光临散文网 会员登陆 & 注册

C语言学习(3)printf和scanf

2023-04-10 20:01 作者:MayTheFifteenth  | 我要投稿

  /*******************************************************************************************************

                     刚开始学习C语言,仅代表自己的学习理解,不代表观点一定正确

                                                              只做学习记录

                                                     有错误的麻烦指出,谢谢!

*********************************************************************************************************/

printf

***printf:标准格式化输出

例:printf(“%d\n”,a);

 

***printf函数的返回值指的是被输出的字符的数量(不包含\0)

例:int i = 43;

     printf("%d\n",printf("%d",printf("%d",i)));


当第三个printf输出43时,返回给第二个printf的值是字符的数量,也就是两个字符,所以输出2,而返回到第一个printf时只有一个字符,即输出为1

 

***在C语言中,\n作为printf刷新缓存的标识符

 

未加\n
加了\n


scanf

scanf:标准格式化输入

例:scanf(“%d”,&a);

 

scanf的使用技巧

***丢弃字符

在C99标准中是这样定义的

 


例:

 

***字符匹配

    []可以匹配待定的字符序列,需要在scanf的第一个参数中的转换说明符后使用

比如:char data[10]={0}; scanf(“%[xxx]”,data);

    ^符号可以指定不能被匹配的字符

比如:scanf(“%[^xxx]”,data);

    -符号表示连接,可以把n个字符进行连接,用于字符匹配

比如:scanf(“%[a-z]”,data);

注意:什么是匹配,就是从第一个字符开始接收,直到接收到匹配之外的字符就结束

图二:当输入为数字时,系统接收到的第一个字符不是小写字母,就不会把数字放入缓存中,

并且之后的全部丢弃,输出就为空

 


***清除缓存

清除\n(包括\n)以前的缓存

 




C语言学习(3)printf和scanf的评论 (共 条)

分享到微博请遵守国家法律