#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、文件操做過程當中,以二進制方式向文件中寫數據,只能 1.刪除原文件,創建同名的新文件再向裏面寫數據 2.所有覆蓋原文件寫入新數據(效果同1) 3.向文件末尾添加新數據 錯誤想法:企圖對原文件中的局部數據進行修改 總結:二進制方式即只能寫數據,不能經過寫來修改覆蓋數據 二進制修改數據折中辦法:先將不需修改的數據讀出到內存,將他與需修改的新數據合併, 再存到磁盤文件中 2、以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);//當末尾沒有數據可讀時,指針恢復到最後一次移動前的位置讀數據