文件操作
来源:互联网 发布:黑科技网络验证 编辑:程序博客网 时间:2024/05/20 14:15
int fputs( const char *str, FILE *stream );
char *fgets( char *str, int num, FILE *stream );while( !feof(p)){
1.1 getc和putc函数
int main()
{
FILE *fp = fopen("a.txt", "r");
char c;
while ((c = getc(fp)) != EOF)
{
printf("%c", c);
}
fclose(fp);
return 0;
}
int main()
{
FILE *fp = fopen("a.txt", "w");
const char *s = "hello world";
int i;
for (i = 0; i < strlen(s); i++)
{
putc(s[i], fp);
}
fclose(fp);
return 0;
}
int fread( void *buffer, size_t size, size_t num, FILE *stream );
函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的对象数量
int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
fwrite()函数从数组buffer(缓冲区)中, 写count个大小为size(大小)的对象到stream(流)指定的流. 返回值是已写的对象的数量.
结构体stat封装了文件信息
int stat(const char * _Filename, struct stat * _Stat)//指定一个stat对象对于的一个文件路径
stat.st_size;//文件大小,单位:字节
函数的第一个参数代表文件名,第二个参数是struct stat结构。
得到文件的属性,包括文件建立时间,文件大小等信息。
int fseek(FILE * _File, long _Offset, int _Origin);
函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败则不改变stream指向的位置,函数返回一个非0值。
实验得出,超出文件末尾位置,还是返回0。往回偏移超出首位置,还是返回0,请小心使用。
第一个参数stream为文件指针
第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
fseek(fp, 3, SEEK_SET);
1.1 ftell函数
函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。
long len = ftell(fp)
1.2 fflush函数
fflush函数可以将缓冲区中任何未写入的数据写入文件中。
成功返回0,失败返回EOF。
int fflush(FILE * _File);
1.3 remove函数
remove函数删除指定文件
int remove(const char *_Filename);
参数Filename为指定的要删除的文件名,如果是windows下文件名与路径可以用反斜杠\分隔,也可以用斜杠/分隔
1.4 rename函数
rename函数将指定文件改名
int rename(const char *_OldFilename,const char *_NewFilename);
参数oleFilename为指定的要修改的文件名,newfilename为修改后的文件名,如果是windows下文件名与路径可以用反斜杠\分隔,也可以用斜杠/分隔。