磁盘文件保存的问题
从键盘输入一个字符串,输入的字符串以“!”结束,将其中的数字转换成*,输出到磁盘文件star.txt保存,然后将star.txt中的内容输出到屏幕显示。程序代码:
#include <stdio.h> #include <stdlib.h> #define size 100 struct character { char c; }Ch[size+1]; void read_data() { int i; FILE *fp; fp=fopen("star.txt","rb"); for(i=1;i<=size;i++) { fread(&Ch[i],sizeof(struct character),1,fp); } fclose(fp); } void write_data() { FILE *fp; int i; if((fp=fopen("star.txt","wb"))==NULL) {printf("cannot open file\n"); return; } for(i=1;i<=size;i++) if(fwrite(&Ch[i],sizeof(struct character),1,fp)!=1) printf("file write error\n"); fclose(fp); } main() { char x,n; printf("请输入字符串,以!结束:\n"); for(n=1;n<=size;n++) { x=getchar(); if (x!='!') Ch[n].c=x; else break; } write_data(); read_data(); printf("\n\n保存文件中的字符串为:\n"); for (n=1;n<=size;n++) printf("%c",Ch[n].c); }