使用VC6打开源程序文件modi3.cpp。其中类TestClass用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。 此程序将int.txt文件中的内容输出到屏幕,并且将文件按

admin2018-10-23  34

问题 使用VC6打开源程序文件modi3.cpp。其中类TestClass用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。
    此程序将int.txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件out1.txt和out2.txt中。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
    (1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释//********1********后添加适当的语句。
    (2)把获得的输入文件的内容存储到buf中,并且用len记录下文件的长度。请在注释//******2******后添加适当的语句。
    (3)将输入文件的后一半内容存储在第二个文件中,请在注释//********3********后添加适当的语句。
    (4)使用文件流对象打开输入文件in.txt,请在注释//********4********后添加适当的语句。
    注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
1  #include<iostream.h>
2  #include<fstream.h>
3  #include<stdlib.h>
4  class TestClass
5  {
6  public:
7   TestClass(char* fileName)
8    {
9  len=0;
10  fstream infile;
11   infile.open(fileName,ios::in);
12   char ch;
13    //********1********
14    while()
15    {
16    cout<<ch;
17    //********2********
18
19    }
20   infile.close();
21    }
22    void split()
23    {
24    fstream outfile1;
25    fstream outfile2;
26    outfile1.open(’’out1.txt’’,ios::out);
27    outfile2.open(’’out2.txt’’,ios::out),
28    int i=0;
29    for(i=0;i<len/2;i++)
30    {
31    outfile1<<buf
32    }
33    do {
34    //********3********
35
36    } while(i!=len);
37    outfile1.close();
38    outfile2.close();
39    }
40  private:
41   int len;
42    char buf[1024];
43  };
44  void main ()
45  {
46    //********4********
47    TestClass Fsp();
48    Fsp.split();
49    return;
50  }

选项

答案(1)将“while()”完整为:while(infile.get(ch)) (2)添加语句:buf[len++]=ch; (3)添加语句:outfile2<<buf[i++]; (4)将“Testclass Fsp();”完整为:TestClass Fsp(”modi3.txt”);

解析 在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类TestClass及其成员函数实现各种输出操作。
    (1)题目1要求“从输入文件中获得一个字符,并判断是否到文件结尾”。程序中的“while()”循环判断语句中缺少从文件中获得的字符,所以这里补全while循环判断条件,即“while(infile.get(ch))”。
    (2)题目2要求“把获得的输入文件的内容存储到buf中,并且用len记录下文件的长度。”所以为buf分配空间,即“buf[len++]=ch;”。
    (3)题目3要求“将输入文件的后一半内容存储在第二个文件中。”在C++中,用流插入运算符为“<<”,所将buf中存放的数据存入文件outfile2,以根据题干中的要求,即这里补全“outfile2<<buf[i++];”。
    (4)题目4要求“使用文件流对象打开输入文件modi3.txt。”程序应该是调用类“TestClass”中的成员函数“split”。类的构造函数定义中存在参数char*fileName,所以修改注释下的语句缺少参数。即“TestClass Fsp(’’modi3.txt");”。
转载请注明原文地址:https://jikaoti.com/ti/cPt0FFFM
0

最新回复(0)