输出
- 输出:将程序的运行结果输出到控制台或终端窗口中
- 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或0x
printf("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.定义常量pi 2.定义半径变量r 3.输入半径 4.求周长和面积, * 为乘以运算符 5.输出周长和面积
示例代码:
#include <stdio.h> int main() { // 1.定义常量pi const double pi = 3.1415; // 2.定义半径变量r double 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; }