C++ 使用包含量化标记的字符串为C+;中的ofstream指定文件路径+;

C++ 使用包含量化标记的字符串为C+;中的ofstream指定文件路径+;,c++,string,ofstream,C++,String,Ofstream,我试图传递一个字符串作为流的路径。 我正在使用.c_str()函数,但程序运行时没有生成文件 ifstream path_stream ("config.txt"); path_stream >> path; path_stream.close(); ofstream datum (path.c_str()); config.txt的内容是 "test.txt" 如果我将其直接赋给stream的,程序将创建文件test.txt 使用字符串,它只运行程序,没有任何输出。问题是您将文

我试图传递一个字符串作为流的路径。 我正在使用.c_str()函数,但程序运行时没有生成文件

ifstream path_stream ("config.txt");
path_stream >> path;
path_stream.close();
ofstream datum (path.c_str());
config.txt
的内容是

"test.txt"
如果我将其直接赋给stream的
,程序将创建文件
test.txt


使用字符串,它只运行程序,没有任何输出。

问题是您将文件路径放在了
config.txt
文件中的引号中

如果我将其直接赋给流的
,程序将创建文件
test.txt

我想你已经试过了

ofstream datum ("test.txt");
这与

ofstream datum ("\"test.txt\"");
              // ^^        ^^
因为这相当于

ofstream datum (path.c_str());
从文件中读取路径后

ifstream path_stream ("config.txt");
path_stream >> path;
path_stream.close();
ofstream datum (path.c_str());

因此,只需从
config.txt
文件中删除引号。

问题在于,您已将文件路径放在
config.txt
文件中的引号中

如果我将其直接赋给流的
,程序将创建文件
test.txt

我想你已经试过了

ofstream datum ("test.txt");
这与

ofstream datum ("\"test.txt\"");
              // ^^        ^^
因为这相当于

ofstream datum (path.c_str());
从文件中读取路径后

ifstream path_stream ("config.txt");
path_stream >> path;
path_stream.close();
ofstream datum (path.c_str());

因此,只需从
config.txt
文件中删除引号即可。

您的代码看起来很好,尽管“不工作”是对您遇到的错误的一种过于模糊的描述。请提供一个复制您的问题的。实际上,
config.txt
的内容是什么?config.txt中只有“test.txt”(带引号)。如果我直接给ofstream,程序会创建test.txt文件。使用字符串,它只运行程序而没有任何输出。文件的名称不能带有“.”。您正在尝试创建一个。从
config.txt
中删除引号,它将按预期工作。@DerOmmel So
“test.txt“
in引号尝试使用带有这些引号的文件名打开文件。我怀疑您的文件名是否为
“test.txt”
(包括那些引号)。删除引号后,还要确保该文件存在于程序运行的当前工作目录中。最后但并非最不重要的是检查流数据的
结果(path.c_str())使用
datum.fail()
。您的代码看起来很好,尽管“不工作”是对您所遇到错误的一种过于模糊的描述。请提供一个复制您的问题的。实际上,
config.txt
的内容是什么?config.txt中只有“test.txt”(带引号)。如果我直接给ofstream,程序会创建test.txt文件。使用字符串,它只运行程序而没有任何输出。文件的名称不能带有“.”。您正在尝试创建一个。从
config.txt
中删除引号,它将按预期工作。@DerOmmel So
“test.txt“
in引号尝试使用带有这些引号的文件名打开文件。我怀疑您的文件名是否为
“test.txt”
(包括那些引号)。删除引号后,还要确保该文件存在于程序运行的当前工作目录中。最后但并非最不重要的是检查流数据的
结果(path.c_str())使用
datum.fail()