目标:输入不定量字符串,直到按ctrl+Z结束输入,最后输出所有输入的字符串,用动态增长大小的字符指针实现。
问题:结束输入后,无任何输出。编译不报错。
#include <iostream>
#include <string>
using namespace std;int main() 
{   
cout<<"请输入文本:\n";
string str;
char *txt=new char[0],*txt_bak=new char[0],*temp=new char[0]; while(cin>>str)
{
static int flag=0;
txt=new char[str.size()+1];  //txt字符指针保存本次输入的字符串 strcpy(txt,str.c_str());
if(flag==0)
{
char *txt_bak=new char[strlen(txt)+1];//字符串存入一个备份字符指针之中
strcpy(txt_bak,txt);
strcat(txt_bak,"\0");
delete[] txt;   //释放本次保存的txt字符指针
continue;
}
else
{
size_t len=strlen(txt)+strlen(txt_bak)+1;
if(flag==1)
char *temp=new char[len]; //临时保存 当前字符串 + 以往存入的字符串 的字符指针temp
else
{
temp=new char[len];
}

strcpy(temp,txt_bak);
strcat(temp,txt);
strcat(temp,"\0"); //新输入的字符串和先前字符串连接后,存入临时指针
delete[] txt_bak;
txt_bak=new char[len];
strcpy(txt_bak,temp);//将临时指针中的内容复制到txt_bak中
delete[] txt; //释放
delete[] temp;
}
if(flag>1)
continue;
                else
        ++flag;
}
cout<<*(txt_bak)<<endl;
    system("pause");
    return 0;
}