时间:2021-05-20
C语言文件操作解析
在文件操作中除了打开操作以及读写操作,还有几种比较常见的操作。下面介绍一下这些操作中涉及到的函数。
一.移动位置指针的函数
rewind函数和fseek函数,这两个函数的原型是:
void rewind(FILE *fp); 将位置指针移动到文件首
int fseek(FILE *fp,long int offset,int origin); 将位置指针移动到距离origin的offset字节数的位置
其中对于fseek函数中的参数,origin为起始点,offset为距离origin的偏移字节数
origin的值有三个:SEEK_SET(0)—>文件首,SEEK_CUR(1)—>当前位置,SEEK_END(2)—>文件尾。
注意:1)若文件是以追加方式打开,则当进行写操作时,这两个函数是不起作用的,无论将位置指针移动哪个位置,始终将添加的数据追加到文件末尾。
二.其他常用函数
1.ftell函数
long int ftell(FILE *fp);
计算当前位置指针距文件首的字节数,若出错,则返回-1L。
利用ftell函数可以计算出文件的大小。
2.feof函数
int feof(FILE *fp);
检测当前位置指针是否到达文件末尾,若到达文件末尾,则返回一个非零值,否则返回0。
3.ferror函数
int ferror(FILE *fp);
检测文件操作过程中是否出错,若出错,则返回一个非零值,否则返回0
4.remove函数
int remove(const char *filename);
删除文件,若删除成功,则返回0,否则返回非零值
5.rename函数
int rename(const char *oldname,const char *newname);
将文件重命名,重命名成功则返回0,否则返回非零值。
6.freopen函数
FILE* freopen(const char *filename,const char *mode,FILE *stream);
实现重定向输入输出。此函数在测试数据时用得比较多。
7.fclose函数
int fclose(FILE *stream);
关闭一个流,若成功,则返回0,否则返回-1.注意每次对文件操作完之后需关闭流,否则可能会造成数据丢失。
测试程序:
#include<stdio.h>#include<stdlib.h>int main(void){ freopen("input.txt","r",stdin); freopen("output.txt","w+",stdout); int i; int a[10]; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { printf("%d\n",a[i]); } return 0;}假设工程目录下已经存在input.txt,文件中的数据为1 2 -1 3 4 5 7 8 9 10,则运行之后,不需要从控制台输入数据,程序直接从input.txt中读取数据,然后将结果输出到output.txt中,不直接向控制台输出结果。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C语言数据输入与输出实例详解1概论C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数
Servlet中操作文件详解及实例因为Servlet本来就是一个.Java文件,因此servlet中操作文件和普通java文件操作文件是一样的。读取文件主要代码
本文实例讲述了PHP实现类似于C语言的文件读取及解析功能。分享给大家供大家参考,具体如下:$log_file_name='D:/static/develop/k
C语言文件复制实例详解文件复制,在Linux中,将生成的read.o重新文件拷贝一份复制到ReadCopy.o中,并且更改ReadCopy.o文件的操作权限。使
本文实例为大家分享了C#语言实现ini文件读写操作的具体代码,供大家参考,具体内容如下1、ini文件是什么?见百度百科2、C#语言实现ini文件的读写操作///