在我的项目中,我正在尝试为输出创建一组文件。但是,每当我尝试接近这个时,我都无法打开任何一个流。我最好的方法是使用下面显示的ofstream指针向量,但我无法打开它们中的任何一个。
vector<ofstream*> out;
for (int m = 0; m < p; m++)
{
for (int n = 0; n < p; n++)
{
string outname = "TLR" + to_string(n) + "|" + to_string(m) + ".txt";
out.push_back(new ofstream{ outname.c_str() });
}
}
p通常为5. is_open()显示没有任何内容打开(duh)。我的程序编译并运行没有输出。 perror说“无效论证”。我在视觉工作室2013上运行Windows 10.我该怎么做才能使这个工作?感谢。
答案 0 :(得分:5)
Windows上的文件名中不允许使用|
字符。 ?
,:
,<
,>
,\
,/
,*
和"
个字符也是不允许的。所有其他可打印的unicode字符都有效。
答案 1 :(得分:0)
所以我认为你不想创建一个ofstream对象的向量。你想要做的是为文件名创建一个字符串向量,并使用一个stream对象写入每个字符串。我想象的是这样的:
vector<string> out;
for (int m = 0; m < p; m++)
for (int n = 0; n < p; n++)
out.push_back("TLR" + to_string(n) + "_" + to_string(m)+ ".txt");
// Then iterate over the files writing to each one whatever you'd like with the ofstream
另外,就像人们上面评论的那样,“|”字符是保留的,不能在文件名中使用