C语言学习3

文章目录
  1. 1. 基本语句
    1. 1.1. 单个字符的输入与输出
      1. 1.1.1. 字符输出函数putchar()
      2. 1.1.2. 字符输入函数getchar()
    2. 1.2. 数据格式的输入与输出
      1. 1.2.1. 格式化输出函数
      2. 1.2.2. 格式化输入函数

基本语句

单个字符的输入与输出

字符输出函数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/

更新日期:


本站总访问量