我想要创建由四个vector
对象组成的string
对象和四个ofstream
对象,使用string
对象来命名输出文件,使用ofstream
对象来编写数据。
#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
成员,有人能帮我这样做吗,就像我想要创建四个具有四个不同名称的文件,并在一个循环中给它们赋值。
发布于 2013-11-01 03:34:01
根据您的声明,myFileNames[i]
不是字符串对象,而是指向字符串的指针。我不知道为什么会这样宣布。
搞定
std::vector<std::string> myFileNames;
std::vector<std::ofstream> myFiles;
没有指针。
您还应该删除对push_back的调用的for循环,因为您还不需要在其中存储任何内容。
https://stackoverflow.com/questions/19720313
复制相似问题