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

C语言入门·输入输出函数,第1张

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

scanf

scanf()

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

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

原理:行缓冲:

        终端输入10,但是还没有按下回车键时,10就被存储在标准输入缓冲区。此时按下回车后,标准输入缓冲区内存储的是“10\n"。此时才会真正的执行输入输出 *** 作,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()函数详解_望天际的博客-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^v13^pc_search_result_control_group,157^v14^control&utm_term=printf函数&spm=1018.2226.3001.4187

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

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


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


输出结果:
00001000
1000.12345679
1000.12345600
1000.1235
abcdefgh


仅需了解:getchar、putchar

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1353052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-14
下一篇 2022-06-14

发表评论

登录后才能评论

评论列表(0条)

保存