[英]using std::vector<std::string*> and std::vector<std::ofstream*>
我想创建由四个string
对象和四个ofstream
对象组成的vector
,这些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
成员,有人可以帮我解决这个问题,例如我想创建具有四个不同名称的四个文件,并在循环中为它们提供值。
根据您的声明, myFileNames[i]
不是字符串对象,而是指向字符串的指针。 我不确定为什么要这样声明。
做了
std::vector<std::string> myFileNames;
std::vector<std::ofstream> myFiles;
没有指针。
您还应该使用对push_back的调用来删除for循环,因为您还不需要在其中存储任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.