C言语文件的翻开与封闭-创新互联

在C言语中,文件操作多是由库函数来完成的,这节引见文件的翻开和封闭。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册雅安服务器托管、营销软件、网站建设、色尼网站维护、网站推广。

文件的翻开(fopen函数)

fopen() 函数用来翻开一个文件,它的原型为:

FILE *fopen(char *filename, char *mode);

filename为文件名(包含文件途径),mode为翻开方法,它们多是字符串。fopen() 会获取文件信息,包含文件名、文件形态、以后读写地位等,并将这些信息保管到一个FILE类型的构造体变量中,然后将该变量的地址前往。

FILE是在stdio.h头文件中界说的一个构造体,用来保管文件信息。

假如愿望接纳 fopen() 的前往值,就需求界说一个 FILE 类型的指针。例如:

FILE *fp = ("demo.txt", "r");

表现以“只读”方法翻开以后目次下的 demo.txt 文件,并使 fp 指向该文件,如许就可以经过 fp 来操作 demo.txt 了。fp 平日被称为文件指针。又如:

FILE *fp = fopen("D:\\demo.txt","rb");

表现以二进制方法翻开 D 盘下的 demo.txt 文件,许可读和写。
翻开方法(mode)有多种,见下表:

翻开方法阐明
r以只读方法翻开文件,只许可读取,不许可写入。该文件必需存在。
r+以读/写方法翻开文件,许可读取和写入。该文件必需存在。
rb+以读/写方法翻开一个二进制文件,许可读/写数据。
rt+以读/写方法翻开一个文本文件,许可读和写。
w以只写方法翻开文件,若文件存在则长度清为0,即该文件内容消逝,若不存在则创立该文件。
w+以读/写方法翻开文件,若文件存在则文件长度清为零,即该文件内容会消逝。若文件不存在则树立该文件。
a以追加的方法翻开只写文件。若文件不存在,则会树立该文件,假如文件存在,写入的数据会被加到文件尾,即文件本来的内容会被保存(EOF符保存)。
a+以追加方法翻开可读/写的文件。若文件不存在,则会树立该文件,假如文件存在,则写入的数据会被加到文件尾后,即文件本来的内容会被保存(本来的EOF符 不保存)。
wb以只写方法翻开或新建一个二进制文件,只许可写数据。
wb+以读/写方法翻开或树立一个二进制文件,许可读和写。
wt+以读/写方法翻开或树立一个文本文件,许可读写。
at+以读/写方法翻开一个文本文件,许可读或在文本末追加数据。
ab+以读/写方法翻开一个二进制文件,许可读或在文件末追加数据。

文本文件和二进制文件的差别请检查:C言语fopen()翻开文本文件与二进制文件的差别

几点阐明

1) 文件翻开方法由r、w、a、t、b、+ 六个字符拼成,各字符的寄义是:

  • r(read):读

  • w(write):写

  • a(append):追加

  • t(text):文本文件,可省略不写

  • b(banary):二进制文件

  • +:读和写

2) 假如没有“b”字符,文件以文本方法翻开。
3) 凡用“r”翻开一个文件时,该文件必需曾经存在。
4) 在翻开一个文件时,假如失足,fopen将前往一个空指针值NULL。在程序中可以用这一信息来判别能否完成翻开文件的任务,并作响应的处置。因而常用以下程序段翻开文件:

			if( (fp=fopen("D:\\demo.txt","rb") == NULL ){ printf("Error on open D:\\demo.txt file!"); getch(); exit(1); }

这段程序的意义是,假如前往的指针为空,表现不克不及翻开D盘根目次下的 demo.txt 文件,并给出提醒信息“error on open D:\\demo.txt file!”。第3行getch()的功用是从键盘输出一个字符,但不在屏幕上显示。在这里,该行的感化是等候,只要当用户从键盘敲任一键时,程序才持续履行,因而用户可应用这个等候工夫浏览失足提醒。敲键后履行exit(1)加入程序。
5) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方法写入磁盘时,也要把二进制码转换成ASCII码,因而文本文件的读写要破费较多的转换工夫。对二进制文件的读写不存在这种转换。
6) 规范输出文件 stdin(键盘)、规范输入文件 stdout(显示器)、规范毛病文件 stderr(显示器)是由零碎翻开的,可直接运用。

文件封闭(fclose函数)

文件一旦运用终了,应当用fclose()函数把文件封闭,以释放相干资本,防止数据丧失。fclose() 的原型为:

int fclose(FILE *fp);

fp 为文件指针。例如:

fclose(fp);

文件正常封闭时,fclose() 的前往值为0,假如前往非零值则表现有毛病发作。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:C言语文件的翻开与封闭-创新互联
链接地址:http://pwwzsj.com/article/cssgej.html