文件操作

文件的操作,基本的操作也就是fopen与fclose;fread与fwrite。这四个我感觉用的是比较多的,下面也给自己的学习来个小总结。

文件的打开与关闭

  • 文件的打开:fopen函数用来打开一个文件,调用的一般形式为:
    文件指针名 = fopen(文件名,使用文件方式);

  • 其中:“文件指针名”必须是被说明为FILE类型的指针变量;
    “文件名”是被打开的文件名;
    “使用文件方式”是文件的类型和操作要求;
    “文件名”是字符串常量或字符串数组。
    例如:
    FILE* fp;
    fp=fopen("filename","r");
    文件使用方式由r,w,a,t,b,+ 六个符号组成,各字符的含义是:
    r(read) 读
    w(write) 写
    a(append)追加
    t(text) 文本文件
    b(banary)二进制文件
    + 读和写
    ** 有些注意项还是要说一下的。**
    1.用"r"打开文件时,该文件必须已经存在,且只能从文件中读取;
    2.用"w"打开文件时,只能向文件中写入,若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在则将该文件删除,重新建立新文件。
    3.若向一个已经存在的文件追加新的信息,只能用"a"方式打开文件。此时的文件必须是存在的,否则会出错。
    4.打开一个文件时,如果出错,fopen将返回一个空指针NULL;

  • 文件的关闭:fclose函数用来关闭文件;
    文件一旦使用完毕,应及时关闭,以避免文件的数据丢失等错误。
    fclose函数调用的一般形式:
    fclose(文件指针);
    例如:fclose(fp);

文件的读写操作

  • 对文件的读写是最常见的文件操作。C语言中提供了,多种文件读写的函数:

字符读写函数:fgetc和fputc
格式化读写函数:fscanf和fprintf
字符串读写函数:fgets和fputs
数据块读写函数:fread和fwrite

(1)fgetc和fputc

  • fgetc的功能是从指定的文件中读一个字符,调用的一般形式为:
    字符变量 = fgetc(文件指针);
    例如:char ch;
    ch = fgetc(fp);
    写字符函数fputc
  • fputc函数的功能是把一个字符写入到指定文件中,函数调用一般形式为:
    fputc(字符量,文件指针);
    其中,待写入的字符量可以是字符常量或变量。
    例如:fputc('a',fp);//把字符a写入fp指向的文件中。

(2)字符串读写函数,fgets和fputs

  • 读写字符串函数fgets
    函数的功能是从指定文件中读一个字符串到,字符数组中,函数调用的形式为:
    fgets(字符数组名,n,文件指针);
    其中n是一个正整数,表示从文件中读出的字符串不超过n-1个字符。在读入的最后一个字符后加结束标志'\0';
    例如:fgets(str,n,fp);

  • 写字符串函数fputs
    fputs函数的功能是向指定文件写入一个字符串,调用形式为:
    fputs(字符串,文件指针);
    其中字符串可以是字符串常量,也可以是字符数组名,或指针变量,例如:
    fputs("abcd",fp)//意义是把字符串"abcd"写入fp所指的文件中

(3)数据块读写函数:fread和fwrite

  • 读数据块函数的调用一般形式为:
    fread(buffer,size,count,fp);
    写数据块函数的调用一般形式为:
    fwrite(buffer,size,count,fp);
    其中:buffer是一个指针,在fread函数中用来存放数据的首地址,在fwrite函数中它表示
    存放输出数据的首地址;
    size 表示数据块的字节数;
    count 表示读写的数据块块数;
    fp 表示文件指针。
    例如:
    fread(fa,4,5,fp);
    意义是从fp指向的文件中,每次读4字节(一个实数)送入实数组fa中,连续读5次,
    即读5个实数到fa中。

其中注意了这些命令在#include <string.h>的预处理中,不要忘记在前面加上噢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 文件指针 FILE * 指针变量标识符作用:通过该指针即可找到存放某个文件信息的结构变量,然后按结构变量提供的信息...
    永断阎罗阅读 456评论 0 3
  • #include void test1() { /* w:(1)文件存在,将文件清空,再进行写,(2)文件不存在,...
    踩在浪花上00阅读 265评论 0 0
  • 底层文件访问 open系统调用 在遵循POSIX规范的系统上,使用open系统调用并不需要包含头文件sys/typ...
    Select_Ep阅读 1,457评论 1 3
  • 谁把红豆染成了相思 谁又将红尘砌成了墙 白驹过隙 倏而远逝 遇见你是我的幸运 爱上我是你的温暖 一切是那么凑巧 像...
    南有乔木刈阅读 209评论 0 3
  • 那天晚风起, 风起带叶落。 叶落惹乡思, 思乡入巷陌。 巷陌偶遇你, 你乍一回眸。 眸留我心头, 心头更添愁。 愁...
    诗无名阅读 94评论 1 2