level 3
调试窗里用箭头指示的地方,“The fabulous programmer”打印了两次
2017年07月22日 02点07分
2
level 3
这是完整的.c文件
/*addaword--使用fprintf()、fscanf(),和rewind()函数*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 40
int main(void)
{
FILE * fp;
char words[MAX];
if((fp = fopen("words","a+")) == NULL)
{
fprintf(stderr,"Can't open \"words\" file.\n");
exit(1);
}
puts("Enter words to add to the file;press the Enter");
puts("key at the beginning of a line to terminate.");
while(gets(words) != NULL && words[0] != '\0')
fprintf(fp,"%s",words);
puts("File contents:");
rewind(fp);
while(fscanf(fp,"%s",words) == 1)
puts(words);
if(fclose(fp) != 0)
fprintf(stderr,"Can't closing file\n");
return 0;
}
2017年07月22日 02点07分
3
level 3
我打开了“words”文件,输出的内容根文件的内容是一样的,应该是我反复调试,输入的内容都被更新到文件里了
不过又发现了一个问题,就是输入内容后,最后一个字符串后面缺了一个换行符“\n”,再第二次输入字符串后,会跟上次输入的最后一个字符串连接在一起
2017年07月22日 02点07分
4