参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程

目录

常用文件输入输出符号格式及标准

常用应用对象为文件的库函数简介:

库函数部分:

文件创建、打开、阅读:

数据块写入读出(只有这两个函数可以对二进制文件进行数据操作):

字符及字符串写入读出:

格式化读写函数:

其他函数:

符号和格式部分:

常用文件输入输出符号格式及标准

常用应用对象为文件的库函数简介:

文件的创建打开阅读

数据块的写入读出

字符串及字符的写入读出

格式化读写

其他常用函数

库函数部分:

文件创建、打开、阅读:

1、fopen:

功能:见下表指令集

声明源代码:FILE * fopen(const char * path,const char * mode);

path:文件名

mode:指令集(见下表)

示例:包含文件地址的指针变量 = fopen("文件名" , "指令'');

返回值:文件的指针

fopen

r

打开只读

r+

打开读写,从⽂件头开始

w

如果不存在则新建,如果存在则清空

w+

打开读写。如果不存在则新建,如果存在则清空

a

打开追加。如果不存在则新建,如果存在则从⽂件尾开始

..x

如果⽂件已存在则不能

2、fclose:

声明源代码:int fclose(FILE *fp);

功能:关闭fp指向的文件(一个文件同时只能被一个用户打开,所以对文件的操作执行完毕后要关闭文件)

返回值:如果成功关闭,fclose()函数返回0,否则返回EOF。

数据块写入读出(只有这两个函数可以对二进制文件进行数据操作):

3、fwrite:

声明源代码:int fwrite(const void* ptr, int size, int count, FILE* fp);

功能:从ptr指向的地方读取count个size大小的数据写入fp指向的文件中(若指针指向的位置后方有数据会被新写入的数据覆盖)

返回值:返回成功写入数据块个数(所有正常写入应该为count)

4、fread:

声明源代码:int fread(void *ptr, int size, int count ,FILE *stream);

功能:从fp指向的文件中读取size个字节的数据,读取count次存入ptr指向的数据块中。

返回值:返回的是成功读取到的字节数。

字符及字符串写入读出:

5、fgetc:

声明源代码:int fgetc(FILE *stream);

功能:从stream指向的文件中读取一个字节的数据。

返回值:返回所读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。

6、fputc:

声明源代码:int fputc(char ch, FILE *stream);

功能:向stream指向的文件中写入ch;

返回值:返回的时写入等价的字符的ASCII码值,出错是,返回EOF(-1)。

7、fgets:

声明源代码:char *fgets(char *str, int size, FILE *stream);

功能:向stream指向的文件内写入str数组中的size字节的数据。

返回值:调用成功,将读取的字符串返回,使用fgets函数读取的时候会自动在字符串后边加上一个‘\0’,失败返回NULL。

8、fputs:

声明源代码:int  fputs( const char * Str, FILE * File);

功能:向File指向的文件中输出Str指向的字符串( 可在文件指针处填写stdout(标准输出) )

返回值:如果写入成功,则返回非0,此时编译器默认为返回1;如果写入错误,则返回EOF。

格式化读写函数:

(下方提到的字符串也做格式串)

9、fscanf:

声明源代码:int fscanf(FILE *stream, const char *format, ...);

功能:从stream指向的文件读取字符串到... 。fscanf遇到空格和换行时结束(fgets遇到空格不结束)。

示例:fscanf(fp ,"%d" , &obj)

返回值:返回实际读取的数据个数,出错或者到结尾返回EOF。

Tips:fscanf与scanf函数的区别在于scanf是从标准输入(键盘)读取数据,而fscanf是从指定的文件中读取数据。

10、fprintf:

声明源代码:int fprintf(FILE *stream, const char *format, ...);

功能:将format指向的字符串写入文件...取决于字符串中待填入项目(%d等)的多少。(当文件区填入stderr时输出至屏幕)

示例:fprintf(fp, obj);(可以不填...中的内容使仅仅输出字符串到文件)

fprintf(fp, "%d",obj);(类比于printf)

返回值:本次写入操作写到文件中的字节数。

Tips:fprintf与printf的不同之处在于printf是写入到标准输出(屏幕),而fprintf是将数据写入到指定的文件中去。

其他函数:

11、fseek(控制文件指针偏移):

声明源代码:int fseek(FILE *fp, long offset, int whence);

whence是指偏移方式。有如下三种值可选:

SEEK_SET 从距文件开头offset 位移量为新的读写位置.

SEEK_CUR 以目前的读写位置往后增加offset 个位移量.

SEEK_END 将读写位置指向文件尾后再增加offset 个位移量.

功能:将fp指向文件的文件指针按whence的偏移方式,偏移offset个偏移量

示例: fseek(fp, -(long)sizeof(int), SEEK_END);

返回值:调用成功返回0,失败返回-1,error存放错误代码。

12、ftell(获取当前文件指针位置):

声明源代码:long ftell( FILE * File);

功能:获取File指向的文件的位置指针相对于文件头指针的位移量

返回值:无返回值。

13、rewind(将文件指针指向文件开头):

声明源代码:void rewind( FILE * File);

功能:使File指向的文件的位置指针指向首地址。

返回值:当前读写位置偏离文件头部的字节数,操作失败返回1L。

14、feof(判断文件指针是否指向文件尾)(只适用于文本文件不适用于二进制文件):

声明源代码:void feof( FILE * File);

功能:检测File指向的文件的位置指针是否指向文件尾。

返回值:是则返回1,不是则为0。

15、ferror(检查文件操作错误函数):

声明源代码:int ferror( FILE * File);

功能:检测File指向的文件的读写是否出错。

返回值:是则返回1,不是则为0。

Tips:在调用fopen,fclose函数后会产生一个新的ferror的函数值所以应该在,文件的打开关闭操作后尽快判断

16、clearerr(清除出错标志和文件结果标志)

声明源代码:void clearerr( FILE * File);

功能:清除File指向的文件的文件出错标志和结果标志。

返回值:无返回值。

—————————————————————————————————————————————————

符号和格式部分:

格式化的输⼊输出

• printf

• %[flags][width][.prec][hlL]type

• scanf

• %[flag]ty

%*[^,]    (逗号前的东西都舍去)

%[^,]    (作为字符串读入)

c语言中 文件的字符串输入函数是6,【C语言】文件操作及输入输出格式(文件常用的库函数)...相关推荐

  1. java 汉字个数_java语言中如何获取字符串中汉字的个数

    java语言中如何获取字符串中汉字的个数? [实例描述] 字符串中可以包含数字,字母.汉字或者其他字符.使用Character 类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Cha ...

  2. c语言如何赋值空字符串,c语言中如何给字符串数组赋值

    c语言中如何给字符串数组赋值 1.问题 这是我写的 struct student { int x; char name[10]; }; void main() { student st: st.nam ...

  3. C语言中字符型和字符串型的对比

    C语言中字符型和字符串型的对比 字符型:     C语言中字符用单引号括起来,存储方式以ASCII编码二进制形式存储,占用一个字节     如:'a','b','c','A'等     注意:在C语言 ...

  4. c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  5. c语言中不能编译,为什么`int;`可以在C语言中很好地编译,而在C ++中却不能?

    考虑以下程序(请参见此处的现场演示). #include int main(void) { int ;  // Missing variable name puts("Surprise&qu ...

  6. c语言常用字符串处理函数6,【总结】C语言中常见的字符串处理函数

    ------------------------------------------------------------------------------------------- C语言中没有字符 ...

  7. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  8. json c语言 数组转字符串数组中,json和字符串/数组/集合的互相转换の神操作总结...

    一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...

  9. c语言中字符怎么表示6,6、C语言中的字符串

    一.C语言中的字符串 字符串是一种重要的数据类型,但是C语言并没有显示的字符串数据类型,不像java有String ,OBC有NSString等等.所以C语言中的字符串一般以字符串常量的形式出现或者存 ...

最新文章

  1. android 加载器loader详解
  2. python 排序 自定义函数
  3. 【总结】在VirtualBox上面安装Mac的注意事项
  4. 实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
  5. C语言结构体里的成员数组和指针
  6. 太骚了!Python模型完美切换SAS,还能这么玩。。
  7. [LeetCode] 169. Majority Element 多数元素
  8. onvif协议之抓图
  9. scikit-learn 算法的通用形式
  10. Axure原型图教程
  11. Jetty 安全漏洞分析
  12. Unity利用SMSSDK实现短信验证码(附源代码)
  13. c语言 程序数据要五行输出,C语言编程入门之--第三章编写第一个C语言程序
  14. 【起航计划ObjC 001】印第安老斑鸠ObjC的幻想 ---- Ubuntu下安装并使用Obj-C
  15. Newton tangent method
  16. Redis、ES、Nginx和RabbitMQ面试回忆
  17. java公路车为什么会被喷,最全指南
  18. MacOS 更新系统或XCode终端Git报错
  19. QR分解的三种实现方法
  20. kali linux 修改用户名密码

热门文章

  1. why I need register Apache CXF as servlet
  2. my Note debug - add to function
  3. OPPORTUNITIES_GET_ENTITY not implemented in data provider class
  4. block size in download header
  5. Marketing Cloud tile的semantic信息
  6. Cloud for Customer里的Shell menu manager
  7. My Opportunity应用点击Edit后出现time out的错误分析
  8. SAP Cloud Connector里的virtual host和internal host有什么区别
  9. 如何远程调试部署在CloudFoundry平台上的nodejs应用
  10. 如何使用trace模式运行BRF+应用