C++ 如何使文件具有用户输入的名称

C++ 如何使文件具有用户输入的名称,c++,fstream,mkdir,C++,Fstream,Mkdir,好的,在程序创建一个文件夹后,我想把一个文件放在那个文件夹中,但我希望该文件的名称是用户输入的,所以我该怎么做,因为我现在已经设置好了,它所做的一切就是以示例用户输入的名称创建一个文件,并放置“/two”只以两个名称创建一个文件 #include <iostream> #include <direct.h> #include <string> #include <fstream> using namespace std; string newF

好的,在程序创建一个文件夹后,我想把一个文件放在那个文件夹中,但我希望该文件的名称是用户输入的,所以我该怎么做,因为我现在已经设置好了,它所做的一切就是以示例用户输入的名称创建一个文件,并放置“/two”只以两个名称创建一个文件

#include <iostream>
#include <direct.h>
#include <string>
#include <fstream>

using namespace std;

string newFolder = "Example";
string test ;
string two;


int main()
{

    _mkdir((newFolder.c_str()));

    getline(cin,test);
    two = test;


    fstream inout;
    inout.open(newFolder + two,ios::out);
    inout << " This is a test";
    inout.close();


    return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
字符串newFolder=“示例”;
串试验;
弦二;
int main()
{
_mkdir((newFolder.c_str());
getline(cin,test);
二=试验;
fstream-inout;
打开(新文件夹+2,ios::out);

在C++中,旧的C++标准要求你将<代码> const char */COD>参数传递给<代码>:::fSt::OpenORE()/>代码>方法。
inout.open(std::string(newFolder + "/" + two).c_str(),ios::out);
或用于windows文件系统

inout.open(std::string(newFolder + "\\" + two).c_str(),ios::out);

<> P>旧的C++标准要求您将<代码> const char */COD>参数传递给 STD::FSt::OpenORE()/Cuth>方法。
inout.open(std::string(newFolder + "/" + two).c_str(),ios::out);
或用于windows文件系统

inout.open(std::string(newFolder + "\\" + two).c_str(),ios::out);

<> P>旧的C++标准要求您将<代码> const char */COD>参数传递给 STD::FSt::OpenORE()/Cuth>方法。
inout.open(std::string(newFolder + "/" + two).c_str(),ios::out);
或用于windows文件系统

inout.open(std::string(newFolder + "\\" + two).c_str(),ios::out);

<> P>旧的C++标准要求您将<代码> const char */COD>参数传递给 STD::FSt::OpenORE()/Cuth>方法。
inout.open(std::string(newFolder + "/" + two).c_str(),ios::out);
或用于windows文件系统

inout.open(std::string(newFolder + "\\" + two).c_str(),ios::out);
#包括
#包括
#包括
.
.
字符串文件名;
cin>>文件名;
字符串路径;//newfolder=“Example”的路径
path+=filename;//将filename附加到路径,在您的情况下,还应该在path和filename之间附加“\\”。
ofstream ofs(路径);//创建文件
.
.
ofs.close();
#包括
#包括
#包括
.
.
字符串文件名;
cin>>文件名;
字符串路径;//newfolder=“Example”的路径
path+=filename;//将filename附加到路径,在您的情况下,还应该在path和filename之间附加“\\”。
ofstream ofs(路径);//创建文件
.
.
ofs.close();
#包括
#包括
#包括
.
.
字符串文件名;
cin>>文件名;
字符串路径;//newfolder=“Example”的路径
path+=filename;//将filename附加到路径,在您的情况下,还应该在path和filename之间附加“\\”。
ofstream ofs(路径);//创建文件
.
.
ofs.close();
#包括
#包括
#包括
.
.
字符串文件名;
cin>>文件名;
字符串路径;//newfolder=“Example”的路径
path+=filename;//将filename附加到路径,在您的情况下,还应该在path和filename之间附加“\\”。
ofstream ofs(路径);//创建文件
.
.
ofs.close();


什么是操作系统?文件夹名和文件名之间可能需要一个分隔符。例如,在Linux上是:
new\u folder+“/”+two
。好的,谢谢“\\”对我有效,因为我在Windows上。什么是操作系统?您可能需要在文件夹名和文件名之间使用分隔符。例如,在Linux上,它将是:
new\u folder+“/”+two
。好的,谢谢“\\”对我有效,因为我在Windows上。什么是操作系统?您可能需要在文件夹名和文件名之间使用分隔符。例如,在Linux上,它将是:
new\u folder+“/”+two
。好的,谢谢“\\”在Windows上为我工作是什么操作系统?您可能需要在文件夹名和文件名之间使用分隔符。例如,在Linux上,它将是:
new\u folder+“/”+two
。好的,谢谢“\\”在Windows上为我工作为什么您必须构造临时字符串?只需执行:
(newFolder+“/”C.StRe[()代码/@代码> @ 0x499 602D2,我不知道它可以用括号<代码> >(代码)>,THX。虽然它是,它可能会给出一个更好的线索,OP的进展。在我的经验中,您可以在WINDOWIAPI调用中使用<代码> /<代码>(C++实现将最终归结到Windows上)它接受它作为路径分隔符。不确定这是否是普遍保证的。@MattMcNabb可能取决于WinOS版本。我认为后者保证在那里工作。为什么必须构造临时字符串?只需执行:
(newFolder+“/”+two)。c_str() @ 0x49602D2,我不知道它可以用括号<代码>()单独,thx。尽管它是,它可能会给出一个更好的线索,对于OP的发生。在我的经验中,你可以在WINDOWIAPI调用中使用<代码> /<代码>(C++实现将最终归结到Windows上)。它接受它作为路径分隔符。不确定这是否是普遍保证的。@MattMcNabb可能取决于WinOS版本。我认为后者保证在那里工作。为什么必须构造临时字符串?只需执行:
(newFolder+“/”+two)。c_str() @ 0x49602D2,我不知道它可以用括号<代码>()单独,thx。尽管它是,它可能会给出一个更好的线索,对于OP的发生。在我的经验中,你可以在WINDOWIAPI调用中使用<代码> /<代码>(C++实现将最终归结到Windows上)。它接受它作为路径分隔符。不确定这是否是普遍保证的。@MattMcNabb可能取决于WinOS版本。我认为后者保证在那里工作。为什么必须构造临时字符串?只需执行:
(newFolder+“/”+two)。c_str() @ 0x49602D2,我不知道它可以用括号<代码>()单独,thx。尽管它是,它可能会给出一个更好的线索,对于OP的发生。在我的经验中,你可以在WINDOWIAPI调用中使用<代码> /<代码>(C++实现将最终归结到Windows上)。它接受它作为路径分隔符。不确定这是否是普遍保证的。@MattMcNabb可能取决于WinOS版本。我认为后者保证在那里工作。您的“回答”添加了哪些(基本)信息(仅代码回答)