#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);//当末尾没有数据可读时,指针恢复到最后一次移动前的位置读数据