“while”应改为“while(infile.get(ch))”。 (2)应添加“bur[len++]=ch;bur[len]=ch;len++;”。 (3)应添加“outfile2<<bur[i++];”或“outfile2<<buf[i];i++;”。 (4)“TCobj;”应改为“TCobi("in.txt");”。 【解析】本题考查了文件流的使用。根据题意,第1处要获得一个字符,并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf数组,同时让len增1;第3处将buf中的字节输出

题目

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


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

    若变量已正确定义,下列正确的程序段是( )。

    A.while(ch=getchar()=='\NN')putchar(ch);

    B.while((ch=getchar())=='\n')putchar(ch);

    C.while((ch=getchar())!='\N')putchar(ch);

    D.while((ch=getchar())!='\n')putchar(ch);


    正确答案:D
    解析:本题考查两个知识点:①C语言用'n\'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

  • 第2题:

    要求通过while循环不断读入字符,当读入字母'N'时结束循环。若变量已正确定义,以下正确的程序段是( )。

    A.while(( ch = getchar( )) ! ='N') printf(" %c",ch);

    B.while(ch = getehar() ! ='N')printf("%c",ch);

    C.while (ch = getehar() = = 'N')printf( "%c", ch);

    D.while ((ch = getchar( )) == 'N')printf("%c", ch );


    正确答案:A
    解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

  • 第3题:

    要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。

    A.while((ch=getchar())!='N' printf(“%c”,ch) ;

    B.while(ch=getchar()!='N' printf(“%c”,ch) ;

    C.while(ch=getchar())=='N' printf(“%c”,ch);

    D.while((ch=getchar())=='N' printf(“%c”,ch);


    A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

  • 第4题:

    若变量已正确定义,下列正确的程序段是( )。

    A.while(ch=getchar()=='\N')putchar(ch);

    B.while((ch=getchar())=='\n')putchar(ch);

    C.while((ch=getchar())!='\N')putchar(ch);

    D.while((ch=getchar())!='\n')putchar(ch);


    正确答案:D
    解析:本题考查两个知识点:①C语言用'\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

  • 第5题:

    要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()

    A.while(ch=getchar() ='N') printf("%c ",ch);

    B.while((ch=getchar())!='N') printf("%c ",ch);

    C.while(ch=getchar()=='N') printf("%c ",ch);

    D.while((ch=getchar())=='N') printf("%c ",ch);


    A 解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。