C语言基础学习笔记(2):格式化输入与输出

C语言基础学习笔记(2):格式化输入与输出

图:乞力马扎罗山(Kilimanjaro)

Guderian出品

  1. C语言格式化屏幕输出:printf(格式控制字符串, 输出值参数表);

    C语言格式化屏幕输入:scanf(格式控制字符串, 输入地址表);

  2. 问题:printf()%作为格式字符的标识,那么如何输出%呢?C规定,连续两个百分号出现在格式控制字符串中就表示要输出一个百分号

  3. 如何分隔多个输入数据?

    1)空格、Tab或回车

    2)达到输入位宽

    3)遇到非法字符

  4. 如何判断scanf()函数读入了正确的数据项数呢?

    事实上,scanf()是有返回值的,它的返回值就是正确读入的数据项数。现在明白while(scanf(...))为什么正确了吧?

  5. scanf()格式控制字符串中的普通字符原样输入。注意格式字符为%f, %e为输入float型且不能指定精度,格式字符为%c为一个字符包括空白字符(如空格和制表符)。

  6. scanf()格式修饰符

  7. 字符型常量:所有的ASCII码都可以通过转义方式表示,其中\ddd13位八进制ASCII码值所代表的字符,\xhh12为十六进制ASCII码值所代表的字符。如:'B'等价于'\102'等价于'\x42'

  8. 大小写英文字母的ASCII值相差32,即大写字母+32=小写字母

  9. 单个字符的输入输出:

    putchar(ch):向屏幕输出一个字符,字符型变量ch的值

    ch = getchar():从键盘接受的字符作为getchar()的函数值,无参数

  10. getchar()输入时应注意的问题:getchar()函数并不是直接读取用户输入的字符,而是将输入字符先放在输入缓冲队列中,再从缓冲队列读取字符,直到输入回车符或文件结束符EOF时,程序才认为输入结束;一行输入结束,getchar()才开始从输入缓冲队列读取字符,前面函数没读取的数据仍在缓冲队列中,将被下一个getchar()函数读取。

  11. Linux/Unix下键入Ctrl + D或在Windows下键入Ctrl + Zgetchar()函数的确是会返回-1EOFEnd Of File)的,严格意义上应该用int类型来接收getchar()的返回值。

  12. 注意用%c格式读入字符时,空格和回车等空白字符都会被当做有效字符读入,在%c前加一个空格可以忽略缓冲区中的空白字符。


【更多C语言系列】

本文标题:C语言基础学习笔记(2):格式化输入与输出

文章作者:G-SS-Hacker

发布时间:2020年02月09日 - 12:35:51

最后更新:2020年02月16日 - 15:23:33

原始链接:https://G-SS-Hacker.github.io/C语言基础学习笔记(2):格式化输入与输出/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。