2017-07-20 19 views
-2

特定のフォルダに移動する必要のあるテキストを含むファイルを作成しようとしています。しかし、それは作成されますが、exeと同じフォルダにあります。コードは次のとおりです。C++ Ofstreamは特定の場所にファイルを作成しません

const char* name; 
char path[200]; 

int main() 
{ 
    cin.getline(path, 230,'\n'); 

    DIR *dir; 
    name = path; 
    struct dirent *ent; 

    if ((dir = opendir(name)) != NULL) 
    { 
     while ((ent = readdir(dir)) != NULL) 
     { 
      ofstream file(path, ios::out | ios::trunc); 
      file.open("somename"); 
      file << ent->d_name + " something"; 
      file.close(); 
     } 

     closedir(dir); 
    } 
    else 
    { 
     perror(""); 
    } 
} 

何が間違っていますか?

+0

'file.open( "いくつかの名前");'指定した任意の特定のFIEパスなしで、現在の作業ディレクトリにファイルを作成します。 – user0042

+0

respを追加することを検討してください。あなたのソースの冒頭に含まれています。ライブラリ関数に必要なインジケータは、通常、関数自体のマニュアルページに記載されています。 (あなたの[MCVE](http://stackoverflow.com/help/mcve)には見つからないでしょう)、 – Scheff

+0

ファイルを特定のディレクトリに保存する場合は、resp 。相対ファイルパスまたは絶対パス(ディレクトリを含む)を変更するか、またはカレントディレクトリを変更してください。あなたは['chdir()'](http://man7.org/linux/man-pages/man2/chdir.2.html)を使ってあなたのプログラムでそれを行うことができます。 – Scheff

答えて

0

\\を使用して、1つのディレクトリを他のディレクトリまたはディレクトリからファイルと区別できます。

例:

ofstream file("D:\\NewFolder1\\NewForlder2\\NewFolder3\\FileName.txt", ios::out | ios::trunc); 
file.open("D:\\NewFolder1\\NewForlder2\\NewFolder3\\FileName.txt"); 
関連する問題