私のコードでは、出力ストリームを開き、ファイルの最後にデータを追加しています。このようなファイルがない場合、ストリームはストリームを作成する必要がありますが、問題は発生しません。ここ出力ストリームを開く際にエラーが発生しました
は、コードスニペットです:
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;
}
サブジェクト、オブジェクトと述語は、私が以前に作成した変数の文字列です。
それはファイルを作成しないと思いますか? +データがファイルの末尾に追加されることは非常に重要です。
更新: 述語は私が必要とする正確なファイル名であるが、それは
すなわち通常の命名は、そのような値の例
一時的な 'output_file'配列は必要ありません。 C++ 11以降では、ファイル名として 'std :: string'を直接使用できます。古いコンパイラと標準ライブラリを使用している場合は、' open'呼び出しで直接 'predicate.c_str()'を渡すだけです。 –
さらにあなたの問題に関連して、 '述語'の価値は何ですか?絶対パスか相対パスか?パス内のすべてのディレクトリは存在しますか?ファイルを作成するディレクトリに書き込む権利はありますか? // WWW: –
@Someprogrammerdude感謝のが、それはここでは急性問題ではありません...ところで、私はあなたが提案し何をしようとしなかったが、それはファイル名そのものである@Someprogrammerdudeそれは問題 – Salma