应用题
1. 使用VC++2010打开考生文件夹下“proj2”文件夹中的工程proj2.sln。此程序的功能是将out1.txt文件中的内容输出到屏幕与文件中。输出如下:
李一 1.78m 21
王一 1.65m 23
out2.txt文件的内容如下:
李一 1.78m 21
王一 1.65m 23
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)以输入方式打开文件out1.txt,请在注释//********1********后添加适当的语句。
(2)以输出方式打开文件out2.txt,请在注释//********2********后添加适当的语句。
(3)从文件中获得一个字符,判断是否结束,如果结束则退出输出。请在注释//********3********后添加适当的语句。
(4)把获得的字符输出到文件中,请在注释//********4********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
void main()
{
char ch;
fstream infile, outfile;
//********1********
infile.open ("out1.txt");
if(!infile)
{
cout << "out1.txt文件不能打开"<<endl;
abort();
}
//********2********
outfile.open("out2.txt");
if(!outfile)
{
cout <<"out2.txt文件不能打开" <<endl;
abort();
}
//********3********
while()
{
cout<<ch;
//********4********
}
cout <<endl;
infile.close();
outfile.close();
}
【正确答案】(1)将“infile.open("out1.txt");”补充完整为:infile.open("out1.txt",ios::in);
(2)将“outfile.open("out2.txt");”补充完整为:
outfile.open("out2.txt",ios::out);
(3)将“while()”补充完整为:while (in file. get (ch))
(4)添加语句:outfile<<ch;
【答案解析】 本题的功能是将out1.txt文件中的内容输出到屏幕与文件中。解题思路为在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序是对文件的操作。
(1)题目1要求“以输入方式打开文件out1.txt”。在C++中调用文件流的成员函数open的格式为,文件流类.open("文件名",ios::in),所以第1个标识下语句就该为“infile.open("out1.txt",ios::in);”。
(2)题目2要求“以输出方式打开文件out2.txt”。同理第2个标识下修改为“outfile.open ("out2.txt",ios::out);”。
(3)题目3要求“从文件中获得一个字符,判断是否结束”。程序中的“while()”循环判断语句中缺少从文件中获得的字符,所以这里补全while循环判断条件,即“while(infile.get(ch))”。
(4)题目4要求“把获得的字符输出到文件中”。在C++中,用流插入运算符为“<<”,所以根据题干中的要求在第四个标识下补全写入文件的流操作语句,即“outfile<<ch;”。