Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 2.55 KB

12-输入和输出.md

File metadata and controls

70 lines (51 loc) · 2.55 KB

输入输出


输入输出函数

printf()和scanf()函数能让用户可以与程序交流,它们是输入输出函数,简称IO函数。

转换说明:

转换符号 输出
%a、%A 浮点数、十六进制数和p计数法(c99/c11)
%c 单个字符
%d 有符号十进制
%e、%E 浮点数、e、E计数法
%f 浮点数、十进制计数法
%g、%G
%i 有符号八进制(用%d)
%o 无符号八进制
%p 指针
%s 字符串
%u 无符号十进制
%x、%X 无符号十六进制
%% 一个百分号

printf()中的标记:

标记 含义
- 待打印项左对齐,从字段左侧开始打印,示例%-20s,不加-默认为右对齐
+ 有符号值若为正,则在值前显示+号,否则显示-号,示例%+6.2F
空格 有符号值若为正,则在前面显示前导空格(不显示任何字符),若为负,则在之前面显示-号,示例% 6.2F
# 把结果转换为另一种形式

printf()scanf()函数外,还有:

  • getchar() & putchar() 函数,用于获取和输出单个字符。
  • gets() & puts() 函数,用于获取和输出字符串。

缓冲区

用户在进行输入时,大部分系统在用户按下Enter键之前不会重复打印用户输入的字符,这种输入形式属于缓冲输入。 用户利用键盘输入时,输入的字符会依次被送到缓冲区中,在此处等待的输入函数只有在用户输入了回车时,才会去缓冲区中取字符。

缓冲分为:完全缓冲和行缓冲


结束键盘输入

  • 无论系统使用何种方式检测文件结尾,getchar()函数读取到文件结尾时返回stdio.h中的EOF
  • 一般系统使用Ctrl+D或者Ctrl+Z作为文件传输结尾信号

scanf()函数获取字符串

scanf()%s转换说明读取字符串内容,scanf()获取的是一个单词,它的行为是以第一个非空白字符为字符串的开始, 如果使用%s作为转换说明,则以下一个空白字符(空行、空格、制表符、换行符)作为字符串的结束。 如果指定了将要读取字段的长度,比如%10s(长度为10的字符串),那么scanf()将在读到10个字符或读到第一个空白字符停止。


scanf()函数的返回值

scanf()函数返回成功读取的项数,如果没有读取任何项,且需要读取一个数字而用户输入的是非数字字符串,scanf()返回0, 当scanf()读取到文件结尾时,会返回stdio.h中的EOF特殊值,


引用

关于输入输出可以参考输入输出