向文件写入\读取数据的问题
程序代码:
#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这个数组内的数据吗?








