栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言入门·输入输出函数print

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言入门·输入输出函数print

scanf读取的是标准输入;
printf是标准输出;

目录

scanf函数

printf函数


scanf函数

scanf()

()里面填的参数:int scanf(const char *_restrict_,……)表示有返回值,返回值是读取数据成功的个数,const char *_restrict_是一个参数。

用法:scanf(" %c%d%f",a,b,c);

最好每次在%c前面都加一个空格

​​​​​​​其它都不会识别n,空格等字符,但是%会识别,如果输入时,手动输入空格或者n,会被识别,因为输入时不可以有,那么在scanf函数里含有一个空格,会事%c的数据和其他数据分开


原理:行缓冲:

        终端输入10,但是还没有按下回车键时,10就被存储在标准输入缓冲区。此时按下回车后,标准输入缓冲区内存储的是“10n"。此时才会真正的执行输入输出操作,scanf函数才会开始匹配。

        在scanf("%d",&a);中,10 匹配到%d,寻找到变量a的地址(即取地址&),然后把10放入变量a。scanf匹配10的时候,10就被从缓冲区取出,而"n"则留在缓冲区(%d的情况下,"n"会被忽略掉)。但是如果是scanf("%c",&a);,"n"也会被读取。

        若缓冲区为空,则scanf函数会被卡住,被阻塞,不能继续往下执行.若scanf要读取多个输入,第一个输入读取完成后,未能及时输入,即缓冲区为空,scanf函数也会检测出来,然后被阻塞。

        当然,10不一定是放在标准输入缓冲区,但会放在一个缓冲区里就是了。缓冲区的典型代表就是标准输入缓冲区和标准输出缓冲区。


printf函数
printf("name=%s,age=%d,sex=%c,score=%fn","xiaoming",19,'m',93.5);
//输出:name=xiaoming,age=19,sex=m,score=93.500000
//这里浮点数的输出没有处理,最好处理一下

也就是说,后面写常量还是变量都可以,但是要前后匹配

↓↓↓复制粘贴的其他博主的:

printf()函数详解_望天际的博客-CSDN博客_printf函数感谢博主的分享:https://me.csdn.net/blog/K346K3461.printf()简介printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。函数原型:int printf ( const char * format, ... );1返回值:正确返...https://blog.csdn.net/qq_25544855/article/details/81146800?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165502124916781432923299%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165502124916781432923299&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-81146800-null-null.142%5Ev13%5Epc_search_result_control_group,157%5Ev14%5Econtrol&utm_term=printf%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4187

    printf("%d,%5dn",20,a);     //将1000(默认右对齐)左边补空格
    printf("%d,%-5dn",20,a);    //将1000左对齐,右边补空
    printf("%05dn",a);          //前面补0
    printf("%+d,%+dn",a,-1000); //输出正负号
    printf("% d % dn",a,-a);    //正号用空格替代,负号输出;
    //由此可见“”里不一定非得是,只是是,时会输出,;如果是其它的符合也会输出

    printf("%.0f %#.0fn",e,e);  //#的作用:当小数点后不输出值时依然输出小数点
    printf("%.4fn",e);          //小数点后输出4位


输出结果:
20, 1000
20,1000 
01000
+1000,-1000
 1000 -1000
2 2.
2.3000
printf("%.8dn",1000);          //不足指定宽度补前导0,效果等同于%06d
printf("%.8fn",1000.123456789);//超过精度,截断
printf("%.8fn",1000.123456);   //不足精度,补后置0
printf("%.8gn",1000.123456);   //最大有效数字为8位
printf("%.8sn",“abcdefghij”);  //超过指定长度截断


输出结果:
00001000
1000.12345679
1000.12345600
1000.1235
abcdefgh


仅需了解:getchar、putchar

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971693.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号