#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char a[20]={0};
FILE *fp;
fp=fopen("a.txt","r");//rb,rb+且均为作出修改//wb,wb+都不行,不能输入且清除了文件信息,准备输出到文件//注意在程序中的"a"文件在此处必须用a.txt引用
fscanf(fp,"%s",a);
printf("%s
",a);
return 0;
}
文件操作心得:
一、文件操作过程中,以二进制方式向文件中写数据,只能
1.删除原文件,建立同名的新文件再向里面写数据
2.全部覆盖原文件写入新数据(效果同1)
3.向文件末尾添加新数据
错误想法:企图对原文件中的局部数据进行修改
总结:二进制方式即只能写数据,不能通过写来修改覆盖数据
二进制修改数据折中办法:先将不需修改的数据读出到内存,将他与需修改的新数据合并,
再存到磁盘文件中
二、以ASCII(文本文件)方式向文件中写数据则可以对原文件数据进行覆盖
将指针移向被覆盖数据的初始位置,然后此次处开始写数据,将覆盖后面的数据
fp=fopen("data","ab+");//读和追加,二进制方式打开文件,文件指针指向文件末尾
fseek(fp,0L,0);//对下一条写语句无用
fwrite(&count,sizeof(int),1,fp);//数据不是写在文件开始处,而是写在文件末尾(因为ab+方式打开的文件只能在末尾添加数据)
fseek(fp,0L,2);
fread(&count,sizeof(int),1,fp);//当末尾没有数据可读时,指针恢复到最后一次移动前的位置读数据