基本语句
单个字符的输入与输出
字符输出函数putchar()
putchar() 函数的作用是向终端输入一个字符。
字符输入函数getchar()
getchar()函数的作用是从终端输入一个字符。
getchar()函数没有参数,其函数值为从输入设备得到的字符。
数据格式的输入与输出
格式化输出函数
printf()函数是C语言提供的标准输出函数,它的作用是向终端(或系统隐含指定的输出设备)按指定格式输出若干个数据。
1 | printf(格式控制,输出列表); |
①”格式控制”:用双引号括起来的字符串是”格式控制”字符串,它包含以下两种信息。
●格式转换说明,由”%”和格式字符组成
●需要原样输出的字符也写在格式控制内
②”输出列表”:需要输出的一些数据,可以是常量、变量或表达式。输出列表中各输出项用逗号隔开。
可在“%”与格式字符之间输入”宽度说明”,左对齐符号”-“,前导符号”0”等。
格式字符 | 说明 |
---|---|
d | 用来对十进制进行输入输出 |
o | 以八进制数形式输出整数 |
x | 以十六进制数形式输出整数 |
u | 用来输出unsigned型数据,即输出无符号的十进制数 |
c | 用来输出一个字符 |
s | 用来输出一个字符串 |
f | 用来输出实数(单、双精度),以小数形式输出,完全输出整数部分 |
e | 以指数形式输出实数 |
g | 自动以最短表达形式输出实数 |
●格式控制串中,格式说明与输出项从左到右,在类型上必须一一对应匹配。
●在格式控制串中,格式说明与输出项个数要相等。
●在格式控制串中,可以包含任意的合法字符(包括转义字符),在输出它们时将原样输出。
●如果输出%,则应在格式控制串用两个连续的百分号“%%”表示。
printf() 格式控制符形式 %[flag][width][.precision]type
type:输出类型 如 %d %f %c %lf
width:最小输出宽度 至少占几个字符的位置[整体]
precision:输出小数精度。(当小数部分位数大于它时,会按四舍五入原则丢掉多于的数字;当小于它时则在其后补0)
用于整数时,precision表示最小输出宽度,与width不同 整数宽度将会在最左边补0
用于字符时,precision表示最大输出宽度,截取多于宽度的字符。
flag:标志字符
字符 | 含义 |
---|---|
- | 表示左对齐,如果没有,默认右对齐 |
+ | 表示输出符号(正负号),若没有默认仅负数时输出符号 |
空格 | 值为正加空格,值为负默认负号 |
# | 表示八、十六进制前缀(八进制前缀为0,十六进制前缀为0x),无论实数、有无小数皆在后面加小数点。 |
格式化输入函数
1 | scanf(格式控制,地址表列); |
其中scanf是函数名,”格式控制”的含义与printf()中相同。
“地址表列”,由若干变量地址组成,既可以是变量地址,也可以是字符串的首地址。
scanf()函数中的格式说明也是以%开始,以一个格式字符结束,中间可以加入附加字符。
●对unsigned型变量,可以用%d %o %x 格式输入
●在scanf()函数中格式字符前可以用一个整数指定输入数据所占宽度,但对输入实型数不能指定其小数位宽度。
●在格式控制串、格式说明的个数应该与输入项的个数相等,且要类型匹配。
●scanf()函数中的输入项只能是地址表达式,而不能是变量名或其它内容。
●如果在”格式控制”字串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。
●在用”%c”格式输入字符时,空格字符和转义字符都可以作为有效字符输入。
●在输入数据时,若实际输入数据少于输入项个数,scanf()函数会等待输入,直到满足条件或遇到非法字符才结束,若实际输入数据多于输入项个数,多于数据将留在缓冲区备用,作为下一次输入操作的数据。
●在输入数据时,遇到以下情况时认为输入结束:空格、回车、跳格(Tab)
scanf() 读取字符串时遇空格则结束,不会读取空格后的字符串。
scanf() 格式控制符形式: %{*}{width}type
type:表示读取数据的类型,如:%d %s %[a-z] %[^\n
] 等
width表示 最大读取宽度(可有可无)
*表示丢弃读取到的数据(可有可无)
版权声明
Scholar’s Blog by scholargeek is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由董仕麟创作并维护的scholargeek博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于Scholar’s Blog博客,版权所有,侵权必究。
本文永久链接:https://scholargeek.github.io/2018/02/06/C%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A03/