【00003】

【00003】

二、C语言

2.2常用的输入输出函数

1.常用的输入输出函数

(1)输入输出函数头文件

#include <stdio.h>

(2)输入输出函数

1. 单个字符的输入输出函数
(1)putchar

功能:在终端打印一个字符
使用示例

putchar(表达式)
将表达式结果对应的ASCII码表中的字符显示在终端
返回值:返回打印在终端的字符的ASCII码值,类型为整形

注意:
putchar只能打印一个字符
putchar只能打印字符

(2)getchar

功能:从终端接收一个字符
使用示例:

ch = getchar();

2. 格式化字符串的输入输出函数
(1)printf

功能:格式化字符串输出函数

打印非输出控制符

\n换行符
\\ \字符
\" "字符
\b退格符
\r回车符
\t横向制表符
\v纵向制表符
\a响铃
\0

打印输出控制符

输出控制符:将逗号后面对应的表达式的值按照对应的形式转换为字符串输出在屏幕上
%ld按有符号long类型十进制转换
%f按float类型转换
%lf按double类型转换
%c按字符转换
%p按指针类型转换
%s按字符串转换
%u按unsigned int类型转换
%e按指数形式转换
%o按八进制转换
%x按十六进制转换
%#o显示出八进制前的0
%#x显示出十六进制前的0x
%%打印%号、

printf打印多个输出控制符

输出控制符与表达式一一对应

printf("num1 = %d, num2 = %d\n", num1, num2);

printf格式化输出:
%0nd
%-nd
%.mf
n:域宽
0:不足域宽高位用0补齐
-:左对齐
m:保留小数点后m位有效数字

(2)scanf

功能:格式化字符串输入函数,接收字符串并根据格式转换为对应类型的数据

接收非输入控制符
scanf("m")

注意:
非输入控制符需要从终端原封不动输入,否则匹配失败
scanf中尽量少写非输入控制符

接收输入控制符
%d按照有符号的int类型十进制转换
%ld按照有符号的long类型十进制转换
%f按照float类型转换
%lf按照double类型转换
%c按照字符型转换
%s按照字符串转换

int a = 0;
float b = 0;
double c = 0;
char d = 0;
#接收一个int类型数据
scanf("%d", &a);
#接收一个float类型数据
scanf("%f", &b);
#接收一个double类型数据
scanf("%lf", &c);
#接收任意一个字符(包括' '和'\n')
scanf("%c", &d);
#接收一个非' '和'\n'的有效字符
scanf(" %c", &d);

接收多个输入控制符

#include <stdio.h>
int main(void)
{
char ch1 = 0;
char ch2 = 0;
scanf(" %c %c", &ch1, &ch2);
printf("ch1 = %c, ch2 = %c\n", ch1, ch2);
#if 0
double num1 = 0;
double num2 = 0;
scanf("%lf%lf", &num1, &num2);
printf("num1 = %lf, num2 = %lf\n", num1, num2);
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
printf("num1 = %d, num2 = %d\n", num1, num2);
#endif
return 0;

}
(3)puts

功能:向终端打印字符串

注意:

puts会比printf多打印一个\n

(4)gets

功能:从终端接收一行字符串

注意:

scanf接受字符串时,无法接收带‘ ’的字符串

gets可以接收带‘ ’的字符串

gets会去掉从终端接收的\n字符变成\0字符