输入输出

输入

scanf %[flag] type

flag 含义
* 跳过
数字 最大字符数
hh char
h short
l long,double
ll long long
L long double

type 用于
d int
i 整数,可能是16进制或8进制
u Unsigned int
o 8进制
x 16进制
a,e,f,g float
c char
s 字符串(单词)
p 指针

输出

printf %[flags] [width] [.prec] [hlL] type

flag 含义
- 左对齐
+ 在前面放+或-单目运算符
空格 正数留空
0 填充0

width 含义
number 最小字符数
* 下一个参数是字符数
.number 精确小数点位数
.* 下一个参数是小数点后的位数
1
2
3
4
5
6
#include <stdio.h>

int main() {
printf("%*d", 5 ,11); // --> printf("%5d", 11) 右对齐5位 5可以是变量
return 0;
}

修饰类型 含义
hh 单个字符
h short
l long
ll long long
L long double

type 用于 type 用于
i或者d int s float,6
c char g char
G float f或F float,6
o 8进制 x 16进制
X 大写16进制 p 指针
a或A 16进制浮点 e或E 指数
u Unsigned int n 读入/写入的个数
#o 带前导8进制 #x 带前导16进制
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>

int main() {
int num;
char *string = "abcdefg";
printf("%s%n\n", string, &num);
// 将a-g的个数通过%n传递给指针变量num
printf("%d", num);
return 0;
}

文件输入输出

  • 用>和<做重定向

  • 理解成mysql和Linux就行

fopen

参数 含义
r 打开只读
r+ 打开读写,从文件开头开始
w 打开只写,如果不存在则新建,如果存在则清空
w+ 打开读写,如果不存在则新建,如果存在则清空
a 打开追加,如果不存在则新建,如果存在则从文件末尾开始
..x 只新建,如果文件已存在则无法打开

评论