上一篇我们介绍了Struct这个语法,也大致介绍它的宣告、使用方式,不晓得大家有没有清楚一些呢!
今天我们来介绍跟实际档案操作有关的--「读档 & 写档」的开档部分!
档案操作流程
一般来说我们在操作档案时,会有最基本的两个动作,就是使用前(要对档案做任何事情之前)先做开档的动作「fopen」,以及使用完毕(程式结束前)时也要记得关档「fclose」,其他看是要读档抑或是写档则是看需要再进行。
#include <stdio.h>int main(){ //开始使用前,设定file文件指针并以w模式开档 FILE *fptr; fptr = fopen("TheTXT.txt","w"); //写入档案 fprintf(fptr,"this a test txt."); //程式结束前闭档 fclose(fptr); return 0;}
回传0,表示程式运行成功。
可以看到在这个文件里有我们写入的字串了。
fprintf & printf
其实fprintf跟先前学过的printf(第八篇)很像,其实就是用来写档案版本的「printf」,也可以加入格式指定字 & 特殊字元(第七篇),运用上的差别只在于fprintf的第一位参数,必须是对象为文件、档案的指针,而使用方式与printf并没有其他不同。
可以看到fprintf的文件声明:
int fprintf(FILE *stream, const char *format, ...)
和printf的文件声明:
int printf(const char *format, ...)
其实是没什么太大差异的,所以只要熟悉printf的使用方法,fprintf就不是问题啦!不晓得大家有没有记起来这个小规则了呢,也要记得在使用前开档,而使用完毕要闭档喔!
开档模式介绍
其中比较特别的是我们在使用fopen进行开档时,需小心的设定好模式,也要注意不同模式下档案使用的方法不同,而如果来先将不同开档模式整理在下表的话,会像这样:
还有跟以上模式差不多,但为了**二进位档案(.dat档)**的模式:
从表中我们可以看到各个模式的操作,也应该可以看出指令的规律了,r相关的指令针对于已存在之档案,w相关指令则相当于清空重写。a相关的指令类似于续写档案的概念。
另外提醒大家写档读档真的要小心,尤其是w相关的模式,一不小心把有要读取内容的档案弄成这模式会整组不见的!真的要注意使用开档的模式!