邱县seo整站排名,建设一个简单的网站,做网站的公司地址,网页搭建系统框图目录 1.什么是文件#xff1f;1.1 程序文件1.2 数据文件 2.二进制文件和文本文件#xff1f;3.文件的打开和关闭4.文件的顺序读写5.文件的随机读写5.1 fseek5.2 ftell5.3 rewind 6.文件读取结束的判定7.文件缓冲区 1.什么是文件#xff1f;
磁盘上的文件就是文件 一般包含两… 目录 1.什么是文件1.1 程序文件1.2 数据文件 2.二进制文件和文本文件3.文件的打开和关闭4.文件的顺序读写5.文件的随机读写5.1 fseek5.2 ftell5.3 rewind 6.文件读取结束的判定7.文件缓冲区 1.什么是文件
磁盘上的文件就是文件 一般包含两种程序文件数据文件
1.1 程序文件
程序文件包含源程序文件后缀为.c目标文件windows环境后缀为.obj可执行程序windows环境后缀为.exe
1.2 数据文件
文件的内容不一定是程序而是程序运行时读写的数据比如程序运行需要从中读取数据文件或者输出内容的文件
2.二进制文件和文本文件
根据数据的组织形式数据文件被称为文本文件和二进制文件 二进制文件数据在内存中以二进制形式存储不加转换的输出到外存的文件中 文本文件要求在外存上以ASCll码的形式存储则需要在存储前转换
3.文件的打开和关闭
文件在读写前应该打开文件在使用结束后应该关闭文件
//打开⽂件
FILE * fopen ( const char * filename, const char * mode );
//关闭⽂件
int fclose ( FILE * stream );“r”只读为了输入数据打开一个已经存在的文本文件“w”只写为了输出数据打开一个文本文件“a”追加向文本文件尾添加数据“rb”(只读为了输入数据打开一个二进制文件“wb”只写为了输出数据打开一个二进制文件
#include stdio.h
int main()
{//打开文件FILE* pf fopen(test.txt, w);if (pf NULL){perror(fopen);return;}//写文件char a a;for (; a z; a){putc(a, pf);}//关闭文件fclose(pf);pf NULL;return 0;
}4.文件的顺序读写 上面说的适用于所有输入流⼀般指适用于标准输入流和其他输入流如文件输入流所有输出流⼀ 般指适用于标准输出流和其他输出流如文件输出流。
5.文件的随机读写
5.1 fseek
根据文件指针的位置和偏移量来定位文件指针
int fseek ( FILE * stream, long int offset, int origin );举例
#include stdio.h
int main()
{//打开文件FILE* prfopen(test.txt, r);if (pr NULL){perror(fopen);return;}//读文件int ch 0;chfgetc(pr);printf(%c\n, ch);fseek(pr, 4, SEEK_CUR);ch fgetc(pr);printf(%c\n, ch);//关闭文件fclose(pr);pr NULL;return 0;
}5.2 ftell
返回文件指针相对于起始位置的偏移量
long int ftell ( FILE * stream );举例
/* ftell example : getting size of a file */
#include stdio.hint main ()
{FILE * pFile;long size;pFile fopen (myfile.txt,rb);if (pFileNULL) perror (Error opening file);else{fseek (pFile, 0, SEEK_END); // non-portablesizeftell (pFile);fclose (pFile);printf (Size of myfile.txt: %ld bytes.\n,size);}return 0;
}5.3 rewind
让文件指针的位置回到文件的起始位置
void rewind ( FILE * stream );举例
/* rewind example */
#include stdio.hint main ()
{int n;FILE * pFile;char buffer [27];pFile fopen (myfile.txt,w);for ( nA ; nZ ; n)fputc ( n, pFile);rewind (pFile);fread (buffer,1,26,pFile);fclose (pFile);buffer[26]\0;puts (buffer);return 0;
}6.文件读取结束的判定
注意在文件读取过程中不能用feof函数的返回值直接来判断文件是否结束 feof的作用当文件读取结束的时候判断是读取结束的原因是否是遇到文件尾结束
文本文件读取是否结束判断返回值是否为EOFfgetc)或者NULLfgets)二进制文件的读取结束判断判断返回值是否小于实际要读的个数 fread判断返回值是否小于实际要读的个数
7.文件缓冲区 因为有缓冲区的存在C语言在操作文件的时候需要做刷新缓冲区或者在文件操作结束的时候关闭文件