作为一名正在学习C语言的新人,记录C语言学习心得
文件使用调用代码
int main(){
int a = 100;
FILE *p = fopen(const *char filename,const *char mode)//创建一个文本文件
//fopen返回的是一个FILE*类型的指针
fwrite(&a,size,number,p)//对文件数据进行添加
//size-- 这是要被写入的每个元素的大小,以字节为单位。
//nmemb-- 这是元素的个数,每个元素的大小为 size 字节。
fclose(p);//关闭文件
p = NULL;
}
打开方式
文件使用方式 | 含义 | 如果指定文件不存在 |
---|---|---|
“r” (只读) | 为了输入数据,打开一个已经存在的文本文件 | 出错 |
“w” (只写) | 为了输出数据,打开一个文本文件 | 建立一个新的文件 |
“a” (追加) | 向文本文件尾添加数据 | 出错 |
“rb”(只读) | 为了输入数据,打开一个二进制文件 | 出错 |
“wb”(只写) | 为了输出数据,打开一个二进制文件 | 建立一个新的文件 |
“ab”(追加) | 向一个二进制文件尾添加数据 | 出错 |
“r+”(读写) | 为了读和写,打开一个文本文件 | 出错 |
“w+”(读写) | 为了读和写,建立一个新的文件 | 建立一个新的文件 |
“a+”(读写) | 打开一个文件,在文件尾进行读写 | 建立一个新的文件 |
“rb+”(读写) | 为了读和写打开一个二进制文件 | 出错 |
“wb+”(读写) | 为了读和写打开一个二进制文件 | 建立一个新的文件 |
“ab+”(读写) | 打开一个二进制文件,在文件尾进行读写 | 建立一个新的文件 |
文件函数
功能 | 函数名 | 适用于 |
---|---|---|
字符输入函数 | fgetc | 所有输入流 |
字符输出函数 | fputc | 所有输出流 |
文本输入函数 | fgets | 所有输入流 |
文本输出函数 | fputs | 所有输出流 |
格式化输入函数 | fscanf | 所有输入流 |
格式化输出函数 | fprintf | 所有输出流 |
二进制输入 | fread | 文件 |
二进制输出 | fwrite | 文件 |
fseek
根据文件指针位置和偏移量来定位文件指针
int fseek(FILE*stream,long int offset,int origin)
//long int offset为偏移量
//int origin为起始位置
//起始位置参数
//SEEK_CUR,当前指针位置位置
//SEEK_END,文件末尾
//SEEK_SET,文件开头
ftell
返回文件指针相对于起始位置的偏移量
long int ftell (FILE *stream);
rewind
让文件指针回到文件起始位置
void rewind (FILE* stream);
feof
牢记在文件读取过程中,不能用feof函数的返回值直接来判断文件是否结束
在一个文件什么都没有的情况下,读取文件时会返回EOF
文本文件读取是否结束,须判断是读取失败还是遇到文件尾结束
fgetc判断是否为EOF
fgets判断返回值是否为NULL
二进制文件
fread判断返回值是否小于实际要读的个数
当feof返回值为非零数
,则文件结束
返回值为零
,则文件未结束
int feof(FILE* stream);
ferror
检测文件在输入输出时读写是否出错
未出错返回值为0
出错返回值为非零
int ferror(FILE* stream);
如有错误,请大家指点一二