使用VC++6.0打开源程序文件3.cpp。其中类TC用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将in.txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件o

admin2013-10-15  24

问题 使用VC++6.0打开源程序文件3.cpp。其中类TC用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将in.txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件out1.txt和out2.txt中。
    其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
    (1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释1后添加适当的语句。
    (2)把获得的输入文件的内容存储到buf中,并且用ten记录下文件的长度。请在注释2后添加适当的语句。
    (3)将输入文件的后一半内容存储在第二个文件中,请在注释3后添加适当的语句。
    (4)使用文件流对象打开输入文件in.txt,请在注释4后添加适当的语句。
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
    试题程序:
#include
#include(fstream.h)
#include(stdlib.h)
class TC
{
public:
TC(char*fileName)
{
  lend=0;
  fstream infile,
  infile.open(fileName,ios::in);
  char ch;
  //* * * * * * * * 1 * * * * * * * *
  while()
  {
  cout<  //* * * * * * * * 2 * * * * * * * *
    }
    infile.Close();
}
void split()
{
fstream outfile1;
fstream outfile2;
outfile1.open("out1.txt",ios::out);
outfile2.open("out2.txt",ios::out);
int i=0:
for(i=0;i<len/2;i++)
{
outfile1<
}
do
{
  //* * * * * * * * 3 * * * * * * * *
}
while(i! =1en);
outfile1.close();
outfile2.close();
}
private:
int len:
char buf[1024];
};
void main()
{
//* * * * * * * * 3 * * * * * * * *
  TC obj():
  obj.split();
  return;
}

选项

答案(1)“while()”应改为“while(infile.get(ch))”。 (2)应添加“buf[len++]=ch;buf[len]=ch;len++;”。 (3)应添加“outfile2<
解析 本题考查了文件流的使用。根据题意,第1处要获得一个字符,并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf数组,同时让len增1;第3处将huf中的字节输出给outfile2,注意同时让i增1,否则while循环将进入死循环;第4处TC只有一个带char*参数的构造函数,所以创建对象时必须使用构造参数,根据题意这个参数应该是“"in.txt"”。
转载请注明原文地址:https://jikaoti.com/ti/CvXiFFFM
0

最新回复(0)