输入输出函数
printf 函数
printf 是输出一个字符串
printf 格式字符:
打印格式 | 对应数据类型 | 含义 |
---|---|---|
%d | int | 接受整数值并将它表示为有符号的十进制整数 |
%hd | short int | 短整数 |
%hu | unsigned short | 无符号短整数 |
%o | unsigned int | 无符号 8 进制整数 |
%u | unsigned int | 无符号 10 进制整数 |
%x,%X | unsigned int | 无符号 16 进制整数,x 对应的是 abcdef,X 对应的是 ABCDEF |
%f | float | 单精度浮点数 |
%lf | double | 双精度浮点数 |
%e,%E | double | 科学计数法表示的数,此处"e"的大小写代表在输出时用的"e"的大小写 |
%c | char | 字符型。可以把输入的数字按照 ASCII 码相应转换为对应的字符 |
%s | char * | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以\0 结尾,这个'\0'即空字符) |
%p | void * | 以 16 进制形式输出指针 |
%% | % | 输出一个百分号 |
printf 附加格式:
字符 | 含义 |
---|---|
l(字母 l) | 附加在 d,u,x,o 前面,表示长整数 |
- | 左对齐 |
m(代表一个整数) | 数据最小宽度 |
0(数字 0) | 将输出的前面补上 0 直到占满指定列宽为止不可以搭配使用- |
m.n(代表一个整数) | m 指域宽,即对应的输出项在输出设备上所占的字符数。n 指精度,用于说明输出的实型数的小数位数。对数值型的来说,未指定 n 时,隐含的精度为 n=6 位。 |
c
#include <stdio.h>
int main()
{
int a = 10;
printf("%p\n", &a); // 输出16进制内存地址编号
long b = 1000;
printf("%ld, %lx, %lo\n", b, b, b);
long long c = 100000;
printf("%lld, %llx, %llo\n", c, c, c);
int abc = 10;
printf("abc = '%6d'\n", abc); // 右对齐 ' 10' 6表示输出数值的位数
printf("abc = '%-6d'\n", abc); // 左对齐 '10 '
printf("abc = '%06d'\n", abc); // '000010'
printf("abc = '%-06d'\n", abc); // '10 '
double d = 12.3;
printf("===%10.3lf===\n", d); // === 12.300=== 10 表示共10位数,小数点也算一位
printf("===%-10.3lf===\n", d); // ===12.300 === - 左对齐
return 0;
}
putchar 函数
putchar 输出一个 char
c
#include <stdio.h>
int main()
{
char a = 'a';
// 只有一个参数,就是要输出的 char
putchar(a);
return 0;
}
scanf 函数
scanf 通过%转义的方式可以得到用户通过标准输入设备输入的数据
在 vs 编辑器中编译会提示scanf
不安全,要求输入%d,但输入不是数字时会出现异常,解决方法:
- 在程序第一行添加代码
#define _CRT_SECURE_NO_WARNING
- 或添加一行
#prama warning(disable:4996)
单个输入
c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char ch;
scanf("%c", &ch); // 输入一个字符
putchar(ch);
return 0;
}
多个输入
多个输入时中间的约束的分隔符在输入时也要一致,但不能是\n
,\n
表示结束输入
c
// 同时输入多个
int a = 1, b = 20;
scanf("%d %d", &a, &b); // 输入 1 2 对应 a b
printf("%d %d", a, b);
scanf("%d,%d", &a, &b); // 输入 1,2 对应 a b, 中间的分隔符但不能是\n,scanf遇到\n表示结束输入了
printf("%d %d", a, b);
限制输入位数
c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a;
scanf("%3d", &a); // 输入 123445566,%3d 表示限制3位数
printf("%d", a); // 输出 123
return 0;
}
getchar 函数
获取一个字符
c
#include <stdio.h>
int main(void)
{
char a;
a = getchar(); // 输入 111
putchar(a); // 输出 1
return 0;
}
暂时停留界面
上一个例子中在输入完之后窗口就关闭了,可以利用 getchar 等待用户输入,输入完成之后 return 0 才结束窗口,类似按任意键结束。
c
#include <stdio.h>
int main(void)
{
char a;
a = getchar(); // 输入 111
putchar(a); // 输出 1
getchar(); // 等待输入任意键
return 0;
}