2016-11-15 9 views
-3

フォルダを作成し、そのフォルダにファイルを保存したいとします。私は自動的にファイルを作成するコードを書いて、ファイルをフォルダに保存したい。私は多くのコードを試しましたが、今まで働いたことはありません私はこのコードをコンパイルするときファイルとフォルダを作成してそのファイルをフォルダに保存する方法は?

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'); 
} 

::以下は、私が試してみましたが、それはまだ動作しません。私の最後のコードです

image

をこのエラーが表示されます:

image

どうすればこのエラーを修正できますか?ファイルをフォルダに保存するにはどうしたらいいですか?

+0

このリンクをクリックすると、写真が表示されます。ご不便をおかけして申し訳ありませんが、このウェブサイトを初めて使用しています。ありがとう。 –

+2

テキストの画像へのリンクを投稿しないでください。テキストの画像も投稿しないでください。代わりに質問の本文に実際のテキストをコピーして貼り付けます。 [良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)。[最小限の、完全で検証可能な例](http:// stackoverflow.com/help/mcve)も同様です。 –

+1

ところで、あなたの質問は何ですか?それはビルドエラーについてですか?それとも、フォルダを作成してそのフォルダ内にファイルを作成するのですか?質問ごとに1つの質問をしてください! –

答えて

0

std::ostream::putは、シングル文字で、C文字列ではありません。そのためには、std::ostream::writeを代わりに使用する必要があります。

outfile.write(input.c_str(), input.size()); 
+0

私はこのコードを試しましたが、私のファイルはメインフォルダに保存されますが、保存するフォルダではありません。この場合、私はsingleroomという名前のフォルダです。 –

+0

実際のコードを掲載していないので、私はその問題を解決することはできません。あなたが示した小さなもので、コンパイルエラーは私が助けることができるすべてです。 @Someprogrammerdudeが投稿したリンクを読み、それに応じて質問を更新してください。 – ildjarn

+0

ファイルをフォルダに保存する最も簡単な方法を教えてください。ありがとう。 –

関連する問題