文件:有限数据的集合。
TXT文档:有限文本的集合
exe程序:有限指令的集合。
内存:当电脑关机时,内存会清空。
文件:为了需要长期保存信息,一般文件存储到外储(U盘,光盘,硬盘。。。)
文件构成:文件的位置(Linux: /home/LF/Desktop/a.txt Winows: C:\User\Desktop\a.txt)+存储空间
文件的划分:
数据类型: 文本文件 二进制文件
C语言文件I/O:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
1、打开 FILE* fopen(“path”,“操作的方式”) 打开时,一定要指定操作方式
操作方式:
文本文件
只读 r 如果文件不存在,返回NULL
只写: w 如果文件不存在,则新建 如果存在,则截断为0。
追加: a+ 打开文件时,文件的读写指向文件的末尾处。
可读写 r+ w+ r+可读写,但操作时与r类似(如果文件不存在,则返回NULL)
w+可读写,如果文件不存在,则新建 如果存在,则截断为0。
二进制Binary
只读 rb (类似r)
只写 wb (类似w)
追加 ab
可读写 rb+ wb+
2、操作函数:
读:
文本函数
fputc() 打印一个字符
fputs() 打印一行
fprintf();格式打印
feof();//用于判断当前读写位置是否批向文件的末尾处
fprintf();
fscanf();
二进制函数
fread(void*buffer,size,num)
fwrite(void*buffer,size,num) 写入的字节:size*num
返回值:返回实际读写的次数
fseek(FILE*,int offset,int whence);
offset:位移量(>0向右移动 <0向左移动)
whence:位置(开头SEEK_SET,当前SEEK_CUR,结尾SEEK_END)
注:每以打开时,都有一个文件的读写位置。每读或写n个Byte时,文件的读写位置就会移动此n+1的位置。
3关闭---正常关闭时,系统会将缓冲区的数据正常写放或读取
fclose(FILE*);
abcdefgh
系统 高速缓冲区《abcdefhg》 硬盘中
文本文件:存储的文件中的数据都是以对应字符的ASCII值存储到硬盘中
#define EOF -1
文件(ABCDE):《---》内存中 [?01000001?][01000010][01000011][01000100][01000101][-1]
二进制文件: short a=10(内存) 0000000000001010 <-->文件中:0000000000001010
二进制文件:
TXT文档:有限文本的集合
exe程序:有限指令的集合。
内存:当电脑关机时,内存会清空。
文件:为了需要长期保存信息,一般文件存储到外储(U盘,光盘,硬盘。。。)
文件构成:文件的位置(Linux: /home/LF/Desktop/a.txt Winows: C:\User\Desktop\a.txt)+存储空间
文件的划分:
数据类型: 文本文件 二进制文件
C语言文件I/O:
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
1、打开 FILE* fopen(“path”,“操作的方式”) 打开时,一定要指定操作方式
操作方式:
文本文件
只读 r 如果文件不存在,返回NULL
只写: w 如果文件不存在,则新建 如果存在,则截断为0。
追加: a+ 打开文件时,文件的读写指向文件的末尾处。
可读写 r+ w+ r+可读写,但操作时与r类似(如果文件不存在,则返回NULL)
w+可读写,如果文件不存在,则新建 如果存在,则截断为0。
二进制Binary
只读 rb (类似r)
只写 wb (类似w)
追加 ab
可读写 rb+ wb+
2、操作函数:
读:
文本函数
fputc() 打印一个字符
fputs() 打印一行
fprintf();格式打印
feof();//用于判断当前读写位置是否批向文件的末尾处
fprintf();
fscanf();
二进制函数
fread(void*buffer,size,num)
fwrite(void*buffer,size,num) 写入的字节:size*num
返回值:返回实际读写的次数
fseek(FILE*,int offset,int whence);
offset:位移量(>0向右移动 <0向左移动)
whence:位置(开头SEEK_SET,当前SEEK_CUR,结尾SEEK_END)
注:每以打开时,都有一个文件的读写位置。每读或写n个Byte时,文件的读写位置就会移动此n+1的位置。
3关闭---正常关闭时,系统会将缓冲区的数据正常写放或读取
fclose(FILE*);
abcdefgh
系统 高速缓冲区《abcdefhg》 硬盘中
文本文件:存储的文件中的数据都是以对应字符的ASCII值存储到硬盘中
#define EOF -1
文件(ABCDE):《---》内存中 [?01000001?][01000010][01000011][01000100][01000101][-1]
二进制文件: short a=10(内存) 0000000000001010 <-->文件中:0000000000001010
二进制文件: