2

関数が Fortran プログラム内で呼び出される C/C++ ライブラリがあります。ライブラリで生成された出力を、Fortran プログラムが出力するのと同じファイルに書き込みたいと考えています。ファイル名を渡して C++ で開き、書き込み、最後に次のサンプル コードで閉じようとしました。

std::ofstream output;
output.open(name, ofstream::out | ofstream::app);

/*
   Some calculations...
 */    

output << "Result is " << result << std::endl;

output.close();

ofstream::app を削除しない限り、ファイルには何も書き込まれませんが、Fortran コードによって書き込まれたもののほとんどが破棄されます...同様のサンプル コードで fprintf を使用してみました:

FILE * pFile = fopen(name, "a");

 /*
   Some calculations...
 */    

fprintf(pFile, "Result is = %.10E", result);

fclose(pFile);

同じ結果で。これを行う方法についての手がかりはありますか?

4

1 に答える 1

4

ランタイム ライブラリの 1 つのセットでそれを行う方法を見つけたとしても、別の (たとえば、別のコンパイラ コレクション) または別のオペレーティング システムでは失敗する可能性があります。最初にファイルを開いたシステムの一部。

于 2013-08-27T13:39:13.010 に答える