C++ 如何创建文件和文件夹,然后将该文件保存到文件夹中?

C++ 如何创建文件和文件夹,然后将该文件保存到文件夹中?,c++,c++builder,C++,C++builder,我想创建一个文件夹,然后将文件保存到该文件夹中。我编写了自动创建文件的代码,我想将文件保存到一个文件夹中。我试过很多代码,但都不管用。下面是我最后一次尝试的代码,但仍然不起作用: void rooms() { Name rooms; Name rooms2; Name rooms3; Name staff; int b; char choicedo; string filename; string input; do

我想创建一个文件夹,然后将文件保存到该文件夹中。我编写了自动创建文件的代码,我想将文件保存到一个文件夹中。我试过很多代码,但都不管用。下面是我最后一次尝试的代码,但仍然不起作用:

void rooms() {
    Name rooms;
    Name rooms2;
    Name rooms3;
    Name staff;
    int b;
    char choicedo;
    string filename;
    string input;

    do
    {
        ofstream bilik2;
        bilik2.open("rooms2.txt", ios::out | ios::app);
        if(!bilik2)
        {
            cout<<"File Not Found!";
            exit(1);
        }
        if(bilik2 == NULL)
        {
            cout << "Error! Rooms is empty!";
            break;
        }

        ofstream bilik3;
        bilik3.open("rooms3.txt", ios::out | ios::app);
        if(!bilik3)
        {
            cout<<"File Not Found!";
            exit(1);
        }
        if(bilik3 == NULL)
        {
            cout << "Error! Rooms is empty!";
            break;
        }

        cout<<"1. Single Rooms "<<endl;
        cout<<"2. Family Rooms "<<endl;
        cout<<"3. Royal Rooms "<<endl;
        cout<<endl;
        cout<<"\nRooms type: ";
        cin >> b;
        system("cls");
        cout<<"Please fill in requirement information "<<endl;
        switch(b)
        {
            case 1:
            {
                cout<<"Room No: ";
                cin>>filename;
                input = filename;
                cin.ignore();
                //ofstream input("C:\\Users\\Dr. Akilah\\Desktop\\BLUE\\single room");
                mkdir("singleroom");
                ofstream outfile("singleroom");

                //system("mkdir singleroom");
                outfile.write(input.c_str(), input.size());
                input += ".txt";
                outfile.close();

                ifstream ifile(input.c_str());
                if(ifile)
                {
                    cout<<"Room is already exist."<<endl;
                    exit(1);
                }

                ofstream out(input.c_str());
                //out.open("C:/Users/Dr. Akilah/Desktop/BLUE/single room/ ", ios::out | ios::app);

                ofstream bilik;
                bilik.open(input.c_str(), ios::out | ios::app);
                cout<<endl;
                cout<<"Air Conditioner: ";
                cin.getline(rooms.airc, 20);
                cout<<"Date: ";
                cin.getline(rooms.date, 20);
                cout<<"Insert by: ";
                cin.getline(staff.first, 20);

                bilik<<"List of Single Rooms"<<endl;
                cout<<endl;
                bilik<<"------------------------------------------------------------"<<endl;
                bilik<<endl;
                bilik<<"               Room No: "<<filename<<endl;
                bilik<<endl;
                bilik<<"Air Conditioner: "<<rooms.airc<<endl;
                bilik<<endl;
                bilik<<"Regsitration Date: "<<rooms.date<<endl;
                bilik<<endl;
                bilik<<"Created by: "<<staff.first<<endl;
                bilik<<endl;
                bilik<<endl;
                bilik<<"------------------------------------------------------------"<<endl;
                bilik.close();
                break;
            }

            case 2:
            {
                cout<<endl;
                cout<<"Room no: ";
                cin>>rooms2.room;
                cin.ignore();
                cout<<"Air Conditioner: ";
                cin.getline(rooms2.airc, 20);
                cout<<"Date: ";
                cin.getline(rooms2.date, 20);
                cout<<"Insert by: ";
                cin.getline(staff.first, 20);
                break;
            }

            case 3:
            {
                cout<<endl;
                cout<<"Room no: ";
                cin>>rooms3.room;
                cin.ignore();
                cout<<"Air Conditioner: ";
                cin.getline(rooms3.airc, 20);
                cout<<"Date: ";
                cin.getline(rooms3.date, 20);
                cout<<"Insert by: ";
                cin.getline(staff.first, 20);
                break;
            }

            default:
                cout<<"Invalid choice "<<endl;
                cout<<endl;
                Sleep(1000);
                //return 0;
        }

        cout<<"Enter Y To input an other data or Enter N to Exit: ";
        cin>>choicedo;
        cout<<"_____________________________________"<<endl;
        cout<<endl;
    }
    while (choicedo=='y' || choicedo=='Y');
}
void房间(){
命名房间;
命名房间2;
命名房间3;
工作人员姓名;
int b;
char choicedo;
字符串文件名;
字符串输入;
做
{
胆汁流;
bilik2.open(“rooms2.txt”,ios::out | ios::app);
如果(!bilik2)
{
cout只接受一个字符,而不是C字符串;为此,您应该使用:


单击该链接可查看我的照片。很抱歉给您带来不便,这是我第一次使用此网站。谢谢。不要发布文本图像的链接。甚至不要发布文本图像。请将实际文本复制粘贴到问题正文中。请。您可能还应该学习如何创建。顺便问一下,您的问题是什么?是ab吗排除生成错误?或者是如何创建文件夹,然后在文件夹中创建文件?请每个问题回答一个问题!主要问题是我想创建一个文件夹,然后将文件保存到该文件夹中。您已经知道如何操作(
mkdir()
std::ofstream
),那么您在使用它们时遇到的真正问题是什么?可能是因为您使用的是相对路径。始终使用绝对路径。我尝试了此代码,但我的文件仍然保存在主文件夹中,而不是我要保存它的文件夹中,在本例中,是我命名为singleroom的文件夹。因为您没有发布实际代码,我无法帮助解决该问题;就您所展示的一点内容而言,编译错误是我唯一能帮助解决的问题。请阅读@Someprogrammerdude发布的链接,并相应地更新您的问题。您能告诉我将文件保存到文件夹中的最简单方法吗?谢谢。这是一个太广泛的请求;但是发布您的代码,我可能能够帮助您更正w这就是这个网站的工作方式…;-]我发布了我的部分代码。请查看。问题出在案例1中。
outfile.write(input.c_str(), input.size());