字符方式文件读写函数
-
fgetc
从文件中逐个读入字符到char
读到文件末尾返回eof
ch=fgetc(fp) -
fputc
将一个字符ch写到文件中
fputc(ch,fp)
使用时不知道为什么会出错造成文件无法打开
造成无法打开文件的代码
int main()
{
char ch;
FILE *fp1,*fp2;
if((fp1=fopen("/Users/xiebaba/Downloads/hello.txt.rtf","r+"))==NULL)
{
printf("kong");
exit(0);
}//打开文件的标准套路
if((fp2=fopen("/Users/xiebaba/Downloads/hello2.rtf","r+"))==NULL)
{
printf("kong");
exit(0);
}//the same
while(!feof(fp2))
{
if(fputs("you",fp1)==EOF)
{
printf("failed");
}
}
if(fclose(fp1))
{
printf("can't close the file");
exit(0);
}
if(fclose(fp2))
{
printf("can't close the file");
exit(0);
}
简易的复制文件代码用fgets fputs
#include <stdio.h>
#include<stdlib.h>
int main()
{
char ch;
FILE *fp1,*fp2;
if((fp1=fopen("/Users/xiebaba/Downloads/hello.txt.rtf","r+"))==NULL)
{
printf("kong");
exit(0);
}
if((fp2=fopen("/Users/xiebaba/Downloads/hello2.rtf","r+"))==NULL)
{
printf("kong");
exit(0);
}
while(!feof(fp1))
{
ch=fgetc(fp1);
**if(ch!=EOF)**
fputc(ch,fp2);
//用fgetc从文件1读入字符到ch中再用fputc将ch写入文件2
}
if(fclose(fp1))
{
printf("can't close the file");
exit(0);
}
if(fclose(fp1))
{
printf("can't close the file");
exit(0);
}
}
-
fgets(array, number,fp)
将数量为number的值读入到array中 -
fputs(s,fp)
写入一个字符串到文件中 -
feof
常用格式
while(!feof(fp1))
判断是否到了文件末尾
- fclose
对于缓冲系统文件来说 文件的操作是通过缓冲区进行的 写满512B才会被读入磁盘扇区 若过程异常终止 则数据丢失
常用格式
if(fclose(fp))
{
printf("can't close the file");
exit(0);
}
-
rewind(FILE *fp)
将文件指针摆正 -
fseek(fp,offset,from)
offset是long型数据 使用常量时 后缀加L
from:从哪里开始偏移
0:文件首
1:当前位置
2:文件尾部
example
fseek(fp,-10L,2) -
ftell(fp)
获取当前指针位置相对于头文件位置的偏移量