#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\n",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);//當末尾沒有數據可讀時,指針恢復到最后一次移動前的位置讀數據