给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在行线上填入所编写的若干表达式或语句。
[试题源程序]
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void WriteText(FILE*);
void ReadText(FILE*);
main()
FILE*fp;
if((fp=fopen("myfile4.txt","w"))==NULL)
printf("open fail!!\n");exit(0);
WriteText(fp);
fclose(fp);
if((fp=fopen("myfile4.txt","r"))==NULL)
printf("open fail!!\n");exit(0);
ReadText(fp);
fclose(fp);
/**********found**********/
void WriteText(FILE (1) )
char str[81];
printf("\nEnter string with -1 to end:\n");
gets(str);
while(strcmp(str,"-1")!=0)
/**********found**********/
fputs( (2) ,fw);
fputs("\n",fw);
gets(str);
void ReadText(FILE * fr)
char str[81];
printf("\nRead file and output to screen:\n");
fgets(str,81,fr);
while(!feof(fr))
/**********found**********/
printf("%s", (3) );
fgets(str,81,fr);
3()
参考答案:str
解析:
本题要求是把键盘上输入的内容写到指定的文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。
填空1:要求填写文件流的自变量名,在这个函数中,已有的语句fputs("\n",fw);分析可知:由于文件流变量fw在函数体没有定义过,所以本处应填*fw或fw[]。
填空2:通过while循环语句,把键盘上输入的内容,要写入到指定的文件中,键盘上输入的内容已存入字符串str变量中,因此,本处应填写str。
填空3:要把已存入文件中的内容,再从文件中读出且已存入字符串变量str中,最后在屏幕显示出来,因此,此处应填写str。