C文件读写函数
来源:互联网 发布:京东开店好还是淘宝好 编辑:程序博客网 时间:2024/05/17 03:47
最近写的程序总是跟文件读写打交道,而且这个功能也十分重要,所以就查了一些资料,记录下来以便以后查看。
1.打开文件
一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。
fopen()函数,头文件:#include <stdio.h>
fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:
FILE * fopen(const char * path, const char * mode);
【参数】path为包含了路径的文件名,mode为文件打开方式。
FILE *fopen( const char * filename, const char * mode );
为了方便,上图是网上查到的,方式比较全,足够使用。可以看出模式后面带字母‘b’的都是处理的二进制文件。
2.关闭文件
int fclose( FILE *fp );
如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h 中的常量。
3.写入文件
第一种:int fputc( int c, FILE *fp ); 或 int fputs( const char *s, FILE *fp ); 字符和字符串的区别;
第二种: int fprintf(FILE fp,const char format, ...);
函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。
函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。如下程序示例:
#include <stdio.h>main(){ FILE *fp; fp = fopen("/tmp/test.txt", "w+"); fprintf(fp, "This is testing for fprintf...\n"); fputs("This is testing for fputs...\n", fp); fclose(fp);}注意:“/tmp”这个目录一定要事先建好的,不然找不到test文件,fopen也不会自动构建tmp文件。
4.读取文件
第一种:int fgetc( FILE * fp ); 或者 char *fgets( char *buf, int n, FILE *fp );
第二种:int fscanf(FILE fp, const char format, ...) ;
fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回 EOF;
函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。如果这个函数在读取最后一个字符之前就遇到一个换行符 '\n' 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。
您也可以使用 int fscanf(FILE fp, const char format, ...) 函数来从文件中读取字符串,但是在遇到第一个空格字符时,它会停止读取;
如下程序示例:
#include <stdio.h>main(){ FILE *fp; char buff[255]; fp = fopen("/tmp/test.txt", "r"); fscanf(fp, "%s", buff); printf("1 : %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("2: %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("3: %s\n", buff ); fclose(fp);}运行结果:
1 : This2: is testing for fprintf...3: This is testing for fputs...
首先,fscanf() 方法只读取了 This,因为它在后边遇到了一个空格。其次,调用 fgets() 读取剩余的部分,直到行尾。最后,调用 fgets() 完整地读取第二行。
5.总结
以上内容源自网上查找的资料,本人只是参考整理,供自己和大家学习交流,如有错误,还望各位大牛不吝赐教!
附:
二进制和文本模式的区别:
在windows系统中,文本模式下,文件以"\r\n"代表换行。若以文本模式打开文件,并用fputs等函数写入换行符"\n"时,函数会自动在"\n"前面加上"\r"。即实际写入文件的是"\r\n" 。
在类Unix/Linux系统中文本模式下,文件以"\n"代表换行。所以Linux系统中在文本模式和二进制模式下并无区别。
- C文件读写函数
- c/c++读写文件函数
- C文件读写函数总结
- C文件读写函数选用
- C文件读写函数介绍
- C文件读写相关函数
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍
- C文件读写函数介绍(转)
- ASP.NET(C#)文件读写函数
- CCS 3.3 操作C函数读写文件
- C语言文件读写函数介绍
- C文件读写函数介绍(转)
- 用两个栈实现队列(C++模板)
- WPF 如何让DataGrid中的列标题居中
- MySQL存储引擎的优缺点
- php 7连接MySql数据库的例子
- 10大主流压力测试工具推荐
- C文件读写函数
- [047]python操作redis数据结构
- 大数据学习记录(day1)--云计算
- JS闭包总结
- Android滚轮选择控件 , 包含3D 效果, 滑动流畅无比
- 使用chrome下载youtbe视频
- JAVA SE之Cloneable 深拷贝和浅拷贝的区别
- js Date
- 微软研究公司公布新的Slimmed Down AR眼镜