C语言文件操作 fopen, fclose, mkdir详解
1.建文件夹 int _mkdir(const char *path,mode_t mode); ===================================================== 2.打开文件fopen() 函数功能: 打开一个文件 一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。 if((fin = fopen(“a.txt”,”r”)) == NULL) printf(“Open file error.n”); 参数说明: rb 为输入打开一个二进制文件。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个二进制文件,只允许读数据。 rt+ 读写打开一个文本文件,允许读和写。 ========================================================== 3.关闭文件 fclose() 在使用完一个文件后应该关闭它,以防止它再误用,关闭就是指文件指针变量不指向该文件,也就是文件指针变量与文件脱钩,此后不能再通过该指针对原来与其相联系的文件进行读写操作。除非再次打开,使该指针变量重新指向该文件。 用 fclose 函数关闭文件,fclose 函数调用的一般形式为 fclose(文件指针); 例如: fclose(fp); 应该养成在程序终止之前关闭所有文件的习惯,如果不关闭文件将丢失数据。因为如前所述,在向文件写数据时,是先将数据输到缓冲区,待缓冲区充满后才正式输出给文件,如果当数据未充满缓冲区,而程序结束运行,就会将缓冲区中的数据丢失,用 fclose 函数关闭文件,可以避免这个问题,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量。 fclose 函数也带回一个值,当顺利地执行了关闭操作,则返回值为 0 ,否则返回 EOF (-1) 。可以用 ferror 函数来测试。 将a.txt拷贝到/test目录下,名字也为a.txt C++ /** * Author: Gneveek * Data: 2011-10-6 * Descripition: Clock Chen's Homework : File operation #1 * 一、将a.txt拷贝到/test目录下,名字也为a.txt */ #include <stdio.h> #include <direct.h> //用 _mkdir()创建一个文件夹(目录) int main() { _mkdir("test"); char c; FILE *fin,*fout; if((fin = fopen("a.txt","r")) == NULL) printf("I'm so sorry,Open file error.n"); if((fout = fopen("testa.txt","w")) == NULL) //以 w 方式,只能用于往文件中写,如果不存在,则以指定的文件名新建一个文件 printf("I'm so sorry,Open file error.n"); while((c = fgetc(fin)) != EOF) fputc(c,fout); fclose(fin); fclose(fout); return 0; } ================================================================ 4.判断文件是否存在和是否可读可写 int access(const char *pathname,int mode); pathname:是文件名称 当我们测试成功时,函数返回0,否则如果有一个条件不符时,返回-1. 用一个程序实例来认识这个函数: 输入一个文件名(在命令行中输入),判断该文件是否存在,并且可读,不存在提示不存在,不可读提示不可读,如果存在并可读,则在当前目录下,创建一个目录test,并将该文件拷贝到test中 C++ /** * Author: Gneveek * Data: 2011-10-6 * Descripition: Clock Chen's Homework : File operation #2 *二、输入一个文件名(在命令行中输入),*不存在提示不存在,不可读提示不可读,如果存在并可读, *则在当前目录下,创建一个目录test,并将该文件拷贝到test中 */ #include <stdio.h> #include <io.h> #include <direct.h> #include <string.h> int main() { FILE *fin,*fout; char filename[256]; char pathname[256] = "test"; scanf("%s",filename); if(access(filename,F_OK) == -1) //判断存在与否 printf("This file does not exist!n"); else if(access(filename,R_OK) == -1) //如果存在,判断可读否 printf("Cann't Read!n"); else //到这里,说明即存在又可读 { char c; _mkdir("test"); strcat(pathname,filename); fin = fopen(filename,"r"); fout = fopen(pathname,"w"); while((c = fgetc(fin)) != EOF) fputc(c,fout); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |