开发者社区 > 云原生 > 容器服务 > 正文

C++中vector容器存放字符串,输出错误

 #include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    vector<char*> Sentence;
    vector<char*>::iterator p;
    char ch[100]="\0";
    while(cin.getline(ch,100,'\n'))
    {
        Sentence.push_back(ch);
        //cout<<Sentence.back()<<endl;//在while循环中可以正确输出
    }
//输出的每一个元素均为空行
    for(p=Sentence.begin();p!=Sentence.end();++p)
    {
        cout<<*p<<endl;
    }
    return 0;
}

展开
收起
a123456678 2016-03-06 16:15:03 2859 0
1 条回答
写回答
取消 提交回答
  • 如果不用std::string可以这样

    vector Sentence;
    vector::iterator p;
    while(1)
    {
    char* ch = new char[100];
    cin.getline(ch,100,'\n');
    Sentence.push_back(ch);
    if( Sentence.size() == 3 )
    {
    break;
    }
    //cout<<Sentence.back()<<endl;//在while循环中可以正确输出
    }
    //输出的每一个元素均为空行
    for(p=Sentence.begin();p!=Sentence.end();++p)
    {
    cout<<*p<<endl;
    delete [] *p;
    }
    return 0;

    要注意自己释放内存

    2019-07-17 18:54:48
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
何种数据存储才能助力容器计算 立即下载
《容器网络文件系统CNFS》 立即下载