C++ Can';t创建流对象的std::向量
我试图创建一个流的向量,但它不起作用C++ Can';t创建流对象的std::向量,c++,c++11,c++14,C++,C++11,C++14,我试图创建一个流的向量,但它不起作用 std::vector<std::ofstream> files(10); 而版本2也不起作用: #include <fstream> #include <vector> auto createFiles(int n) { std::vector<std::ofstream> files(n); // fails here at runtime for(int i=0; i<n; ++
std::vector<std::ofstream> files(10);
而版本2也不起作用:
#include <fstream>
#include <vector>
auto createFiles(int n)
{
std::vector<std::ofstream> files(n); // fails here at runtime
for(int i=0; i<n; ++i)
{
std::string fileName("Card" + std::to_string(i+1) + ".txt");
files[i].open(fileName);
}
return files;
}
int main()
{
auto files = createFiles(10);
}
#包括
#包括
自动创建文件(int n)
{
std::vector files(n);//在运行时此处失败
对于(int i=0;i允许程序编译,但在运行时失败?还是无法编译?编译,但在运行时失败?您能否提供一个具有竞争力的可编译程序来复制此内容?就像大约5行代码一样?您有std::vector文件(10)
和std::vector文件;
两者。哪一个是您真正使用的代码?第一个创建一个vector
,其中包含10个与任何文件都不相关的流,因此,如果您尝试写入这些文件,将导致运行时失败。您可以发布一段最小的代码(仅几行)吗但是导致系统错误的完整程序?不要发布与您遇到问题的代码大致相同的代码。确保您发布的代码经过编译器并导致错误。
#include <fstream>
#include <vector>
auto createFiles(int n)
{
std::vector<std::ofstream> files;
for(int i=0; i<n; ++i)
{
std::string fileName("Card" + std::to_string(i+1) + ".txt");
files.emplace_back(fileName); // fails here at runtime
}
return files;
}
int main()
{
auto files = createFiles(10);
}
#include <fstream>
#include <vector>
auto createFiles(int n)
{
std::vector<std::ofstream> files(n); // fails here at runtime
for(int i=0; i<n; ++i)
{
std::string fileName("Card" + std::to_string(i+1) + ".txt");
files[i].open(fileName);
}
return files;
}
int main()
{
auto files = createFiles(10);
}