向文件写入\读取数据的问题
程序代码:
#include<stdio.h> #include<stdlib.h> #define MAX 40 int main(void) { FILE *fp; char words[MAX]; if((fp=fopen("gfile","a+"))==NULL) { fprintf(stdout,"Can't open \"words\"file.\n"); exit(1); } puts("enter the words"); while(gets(words)!=NULL&&words[0]!='\0') { fprintf(fp,"%s",words); } puts("file contents"); int t=0; rewind(fp); while((t=fscanf(fp,"%s",words))==1) { puts(words); printf("%d\n",t); } printf("%d\n",t); printf("%d\n",sizeof(words)); if(fclose(fp)!=0) { fprintf(stderr,"error\n"); } return 0; }一段代码,功能是向文件添加单词
c primer上的
有两个问题:
1、为什么向文件写入50个字符时候就不能再写入了?
2、每次运行,最后的puts(words)都会把文件内的信息显示出来(包括上一次运行输入的数据),这句代码不应该是打印words这个数组内的数据吗?