输出
- 输出:将程序的运行结果输出到控制台或终端窗口中
 printf语法格式
int printf (const char *format, ...);
- format参数是一个格式化字符串,包含了输出的格式控制信息
 - 后面的参数
...是可变参数,参数(要输出的数据)长度不固定 
- 格式化占位符 | 打印格式 | 对应数据类型 | 含义 | | —- | —- | —- | | %c | char | 字符型,输入的数字按照ASCII码相应转换为对应的字符 | | %hd | short int | 短整数 | | %hu | unsigned short | 无符号短整数 | | %d | int | 接受整数值并将它表示为有符号的十进制整数 | | %u | unsigned int | 无符号10进制整数 | | %ld | long | 接受长整数值并将它表示为有符号的十进制整数 | | %f | float | 单精度浮点数 | | %lf | double | 双精度浮点数 | | %e,%E | double | 科学计数法表示的数,此处”e”的大小写代表在输出时用的”e”的大小写 | | %s | char | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符) | | %p | void | 以16进制形式输出指针 | | %o | unsigned int | 无符号8进制整数 | | %x,%X | unsigned int | 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF |
 
示例代码:
#include <stdio.h>int main() {// 定义变量char c = 'A';short s = 10;int i = 10;long l = 10;float f = 1.123456789123456789;double d = 1.123456789123456789;unsigned int ui = 20;char *name = "bill";// 格式化输出// 整型printf("c=%d\n", c);printf("s=%hd\n", s);printf("i=%d\n", i);printf("l=%ld\n", l);// 浮点类型printf("f=%.10f\n", f);printf("d=%.20lf\n", d);// 无符号数据printf("u=%u\n", ui);// 八进制和十六进制 可以加上前缀# 自动输出八进制和十六进制0或0xprintf("o=%#o\n", 120);printf("x=%#x\n", 120);// 字符串类型printf("s=%s\n", name);// 内存地址printf("ps=%p\n", &s);return 0;}
输入
- 输入:接收用户输入的数据的过程
 scanf语法格式
scanf("格式化字符串", &变量1, &变量2,...);
- 格式化字符串用于指定输入的数据类型及其格式
 - 变量1、变量2等是要读入的变量的地址
 
示例代码:
#include <stdio.h>int main() {// 定义int类型变量age,通过scanf输入内容,然后打印内容int age;printf("请输入年龄:");scanf("%d", &age);printf("age = %d\n", age);return 0;}
案例
- 从键盘输入一个圆形的半径,输出圆的周长和面积
 - 思路步骤
1.定义常量pi2.定义半径变量r3.输入半径4.求周长和面积, * 为乘以运算符5.输出周长和面积
 
示例代码:
#include <stdio.h>int main() {// 1.定义常量piconst double pi = 3.1415;// 2.定义半径变量rdouble r;// 3.输入半径printf("请输入半径:");scanf("%lf", &r);// 4.求周长和面积, * 为乘以运算符double len = 2 * pi * r;double area = pi * r * r;// 5.输出周长和面积printf("周长len = %lf, 面积area = %lf\n", len, area);return 0;}
