应用题 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;”。