2016-12-06 15 views
0

私のコードでは、出力ストリームを開き、ファイルの最後にデータを追加しています。このようなファイルがない場合、ストリームはストリームを作成する必要がありますが、問題は発生しません。ここ出力ストリームを開く際にエラーが発生しました

は、コードスニペットです:

char output_file[100]; 
strcpy(output_file, predicate.c_str());    
ofstream output_file_ptr1; 

output_file_ptr1.open(output_file,ios::out | ios::app | ios::binary); 

if(output_file_ptr1.is_open()){ 

     output_file_ptr1 << subject <<" " << object <<"\n"; 
     output_file_ptr1.close(); 
} 

else{ 
      printf("Error opening out file \n"); 
      return -1; 
} 

サブジェクト、オブジェクトと述語は、私が以前に作成した変数の文字列です。

それはファイルを作成しないと思いますか? +データがファイルの末尾に追加されることは非常に重要です。

更新: 述語は私が必要とする正確なファイル名であるが、それは

< http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

すなわち通常の命名は、そのような値の例

+0

一時的な 'output_file'配列は必要ありません。 C++ 11以降では、ファイル名として 'std :: string'を直接使用できます。古いコンパイラと標準ライブラリを使用している場合は、' open'呼び出しで直接 'predicate.c_str()'を渡すだけです。 –

+0

さらにあなたの問題に関連して、 '述語'の価値は何ですか?絶対パスか相対パスか?パス内のすべてのディレクトリは存在しますか?ファイルを作成するディレクトリに書き込む権利はありますか? // WWW: –

+0

@Someprogrammerdude感謝のが、それはここでは急性問題ではありません...ところで、私はあなたが提案し何をしようとしなかったが、それはファイル名そのものである@Someprogrammerdudeそれは問題 – Salma

答えて

1

ではなく、ほとんどの環境では<w3.org/1999/02/22-rdf-syntax-ns#type>は有効なファイル名ではありません。 UNIXのようなオペレーティングシステム(Linuxなど)では、ファイル名の中で "/"はサポートされません(ディレクトリ構造が一致しない限り)。

+0

問題を解決..おかげ – Salma

関連する問題