给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中(用-1作为字符串输入结束的标志),然后将文件的内容读出显示在屏幕上。文件的读/写分别由自定义函数ReadText()和WriteText()实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#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("\aEnter 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);
参考答案:(1)*fw (2)str (3)str
解析: 本题要求把一段文本写到文件myfile4.txt中(用-1作为字符串输入结束的标志),然后将文件的内容读出显示在屏幕上。在此主要考查的是文件操作以及flouts()和fgets()函数的应用。
第一空:此处是补充函数参数名,参数类型已知是FILE文什指针,fputs("\n",fw)是将"\n"写入文件,可知fw是文件指针名,因此第一空处应该是“fw”。
第二空:while(strcmp(str,"-1")!=0)循环的结束标志是str字符串等于"-1"时退出循环,如果str不等于"-1",执行循环体内容:用fputs()函数将str字符串写入文件。fputs()函数的调用格式是“fputs(s,fp);”,其中s是指向字符串的指针或字符数组名,fp是指向将要被写入的文件的文件指针,因此第二空处应该是“str”。
第三空:while(!feof(fr))循环的作用是不断读取文件直至到达文件尾,每次最多读81个,将读到的数据放在str字符串里,并用printf()输出到屏幕,因此第三空处应该是“str”。
[考点] 文件操作,指针。