首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用std::vector<std::string*>和std::vector<std::ofstream*>

使用std::vector<std::string*>和std::vector<std::ofstream*>
EN

Stack Overflow用户
提问于 2013-11-01 03:28:16
回答 1查看 1.2K关注 0票数 0

我想要创建由四个vector对象组成的string对象和四个ofstream对象,使用string对象来命名输出文件,使用ofstream对象来编写数据。

代码语言:javascript
运行
复制
#include <vector>
#include <fstream>

std::vector<std::string*> myFileNames; 
std::vector<std::ofstream*> myFiles;
int id[4]={1,2,3,4};

for(int i=0; i<4; i++)
{
   myFiles.push_back(new std::ofstream);
   myFileNames.push_back(new std::string);

}

int tmp[4];

for(int i=0; i<4; i++)
{

     tmp[i] = id[i] ;
    myFileNames[i] = "file";
    myFileNames[i] += tmp[i];
    myFileNames[i] += " .csv ";

    std::cout<< "Opening file:" << myFileName[i] << std::endl;
    myFiles[i].open (myFileNames[i].c_str());
    myFiles[i]<< "a,";
 }

问题是,从这一行--myFileNames[i] = "file";错误发生了,似乎我不能以这种方式将值给myFileNames成员,有人能帮我这样做吗,就像我想要创建四个具有四个不同名称的文件,并在一个循环中给它们赋值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-01 03:34:01

根据您的声明,myFileNames[i]不是字符串对象,而是指向字符串的指针。我不知道为什么会这样宣布。

搞定

std::vector<std::string> myFileNames;

std::vector<std::ofstream> myFiles;

没有指针。

您还应该删除对push_back的调用的for循环,因为您还不需要在其中存储任何内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19720313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档