一、
二、
三、
文件的打开:
void print()
{
FILE *fp=fopen("text2.txt","r");//打开;
char c;
while((c=fgetc(fp))!=EOF)
putchar(c);
fclose(fp);// 关闭;
return ;
}
四、
fgetc 和 fputc 读入一个字符;
void add()
{
FILE *fp=fopen("text.txt","w");
if(fp==NULL) printf("error!\n");
else
{
while(1)
{
char c=getchar();
if(c=='#') break;
fputc(c,fp);
putchar(c);
}
}
fclose(fp);
return ;
}
五、
示例:文件的copy:
void copy()
{
FILE *in=fopen("text.txt","r"), *out=fopen("text2.txt","w");
while(!feof(in))//使用feof判断文件是否结束;
fputc(fgetc(in),out);
print();
fclose(in);fclose(out);
return ;
}
六、
示例:
//假如说有一个存储人们信息的文件;
struct pre{
int data;
char name[11];
char num[11];
};
struct pre a[101],b[101];
void save(int n)//信息的存储;
{
FILE *fp=fopen("people.txt","wb");
for(int i=0;i<n;i++)
fwrite(&a[i],sizeof(struct pre),1,fp);
fclose(fp);
return ;
}
void display(int n)//从文件中读入;
{
FILE *fp=fopen("people.txt","rb");
int i=0;
while(!feof(fp))
{
fread(&a[i],sizeof(struct pre),1,fp);
printf("%s %s %d\n",a[i].num,a[i].name,a[i].data);
i++;
}
fclose(fp);
return ;
}
void people()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%s%s%d",a[i].num,a[i].name,&a[i].data);
save(n);
display(n);
return ;
}
七、
示例:
void form()
{
FILE *fp=fopen("text.txt","w");
char a[11];
int b;
fscanf(stdin,"%s%d",a,&b);//read from keyboard;
fprintf(fp,"%s %d",a,b);//put into the file;
fclose(fp);
fp=fopen("text.txt","r");
fscanf(fp,"%s%d",a,&b);//read from the file;
fprintf(stdout,"%s %d",a,b);//print to screen;
fclose(fp);
return ;
}
八、
fgets和fputs是每次操作一行字符;
示例:
void read_str()
{
FILE *fp=fopen("text.txt","w");
char a[81],b[81];
scanf("%s%s",a,b);
fputs(a,fp);
fputs("\n",fp);
fputs(b,fp);
fclose(fp);
fp=fopen("text.txt","r");
while(fgets(a,81,fp)!=NULL)
printf("%s",a);
fclose(fp);
return ;
}
九、
示例:
void back()
{
FILE *fp=fopen("text.txt","w");
char a[81];
scanf("%s",a);
fputs(a,fp);
fputs("\n",fp);
fclose(fp);
fp=fopen("text.txt","r");
while(fgets(a,81,fp)!=NULL)
printf("%s",a);
rewind(fp);// 重置文件指针到文件开头;
while(fgets(a,81,fp)!=NULL)
printf("%s",a);
fclose(fp);
return ;
}
十、
不过感觉基本上读取文件没啥错。。。。
基本没用过。。。
总结下:
我们有
fopen 和 fclose
fscanf 和 fprintf
fgetc 和 fputc
fgets 和 fputs
fwirte 和 fread
fseek 和 ftell
ferror
feof
clearerr
好多。。。?