我正在使用visual studio 2013。我想把对象向量输出到几个文件中。如果我只是将所有内容打印到一个文件中,我就能够创建输出文件,但如果我试图输出到多个文件,什么也不会发生。
#include<vector>
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
struct object
{
int a, b;
};
int main()
{
vector<object> DATA;
//fill DATA
ofstream out; string outname;
outname = "TL" + ".txt";
out.open(outname.c_str());
for (int i = 0; i < p; i++)
{
for (int k = 0; k < DATA.size(); k++)
{
out << i << endl;
if (DATA[k].a == i)
out << DATA[k].b << endl;
}
out << endl;
}
out.close();
return 0;
}
上面的工作完全如我所料。但是,如果我重新排列它,以便我可以创建单独的文件:
for (int i = 0; i < p; i++)
{
ofstream out; string outname;
outname = "TLR" + to_string(i) + ".txt";
out.open(outname.c_str());
for (int k = 0; k < DATA.size(); k++)
{
if (DATA[k].a == i)
out << DATA[k].b << endl;
}
out.close();
}
没有输出。我已经检查了文件是否在另一个目录中创建,没有。放置"count <<"Out.is_open()"在每种情况之后显示单个文件实际上被打开了(输出1),而多个文件没有被打开(输出0)。
谁能告诉我发生了什么,我能做些什么来解决这个问题?我不想运行程序,然后在完成后打开输出文件进行解析。
谢谢。
当我创建多个文件时,我在文件名中使用了管道"|"(未显示),这是Windows文件名中禁止使用的字符。