我想创建vector
个string
个对象和4个ofstream
个对象,string
个对象用于命名输出文件和{{1对象用于写入数据。
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";
成员,任何人都可以帮助我,就像我一样想要创建四个具有四个不同名称的文件,并在循环中为它们赋值。
答案 0 :(得分:0)
myFileNames[i]
不是字符串对象,而是指向字符串的指针。我不确定为什么这样宣布。
设为std::vector<std::string> myFileNames;
std::vector<std::ofstream> myFiles;
没有指针。
您还应该通过调用push_back来删除for循环,因为您还不需要在其中存储任何内容。