[关闭]
@yanglt7 2018-08-06T00:10:56.000000Z 字数 2394 阅读 894

第12周:文件、位运算

C


12.1.1 文件:格式化输入输出

格式化的输入输出

Flag 含义
- 左对齐
+ 在前面放 + 或 -
(space) 正数留空
0 0填充
width或prec 含义
number 最小字符数
* 下一个参数是字符数
.number 小数点后的位数
.* 下一个参数是小数点后的位数
类型修饰 含义
hh 单个字节
h short
l long
ll long long
L long double
type 用于
i或d int
u unsigned int
o 八进制
x 十六进制
X 字母大写的十六进制
f或F float,6
e或E 指数
g float
G float
a或A 十六进制浮点
c char
s 字符串
P 指针
n 读入/写出的个数
flag 含义
* 跳过
数字 最大字符数
hh char
h short
l long, double
ll long long
L long double
type 用于
d int
i 整数,可能为十六进制或八进制
u unsigned int
o 八进制
x 十六进制
X 字母大写的十六进制
a,e,f,g float
c char
s 字符串(单词)
[^] 所允许的字符
P 指针

printf和scanf的返回值

12.1.2 文件:文件输入输出

文件输入输出

FILE

打开文件的标准代码

  1. FILE* fp = fopen("file", "r");
  2. if (fp) {
  3. fscanf(fp,...);
  4. fclose(fp);
  5. } else {
  6. ...
  7. }

fopen

r 打开只读
r+ 打开读写,从头文件开始
w 打开只写。如果不存在则新建,如果存在则清空
w+ 打开读写。如果不存在则新建,如果存在则清空
a 打开追加。如果不存在则新建,如果存在则从文件尾开始
..X 只新建,如果文件已存在则不能打开

12.1.3 文件:二进制文件

二进制文件

文本vs二进制

程序为什么要文件

可移植性

12.2.1 位运算:按位运算

按位运算

按位与 &

按位或 |

按位取反 ~

逻辑运算vs按位运算

按位异或^

12.2.2 位运算:移位运算

左移 <<

右移 >>

12.2.3 位运算:位段

位段

  1. struct {
  2. unsigned int leading : 3;
  3. unsigned int FLAG1 : 1;
  4. unsigned int FLAG2 : 1;
  5. int trailing : 11;
  6. };
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注