最適化セミナーのご案内

9.4 simple_fprintf関数

 simple_fprintf関数は,標準出力ではなくファイルに対して出力をするための関数です.出力先が違うという点以外は,simple_printf関数とほぼ同等の機能を有しています.simple_printf関数の書式は以下のように定められています.出力先ファイルを指定するための第1引数以外は,simple_printf関数と同様の書式です.ただし,simple_printf関数とは異なり引数の数は34個までになります.

simple_fprintf(ファイルポインタ, 出力指定書式, 出力対象1, ..);

 出力対象は「構成要素.情報」の形式である必要があります.

 次の例では,変数の現在値を整数形式で出力させています.出力ファイルとして,output.txtを指定しています.

Variable x;
FILE* fp; // ファイルポインタの設定
fp = fopen("output.txt", "w"); // ファイルを開く
x = 3;
simple_fprintf(fp, "%d\n", x.val);
fclose(fp); // ファイルを閉じる

 これに対する出力ファイルoutput.txtへの出力は以下のようになります.

3

 次の例では,添字つきの変数の現在値を出力させています.出力先ファイルはresultディレクトリ(フォルダ)以下のdata.txtです.

Set S = "1 2 3";
Element i(set=S);
Variable x(index=i);
FILE* fp; // ファイルポインタの設定
fp = fopen("result/data.txt", "w"); // ファイルを開く
x[i] = 3;
simple_fprintf(fp, "x[%d] = %f\n", i, x[i].val);
fclose(fp); // ファイルを閉じる

 これに対する出力ファイルresult/data.txtへの出力は以下のようになります.

x[1] = 3.000000
x[2] = 3.000000
x[3] = 3.000000

 ファイルに上書きではなく,追加をしたい場合はファイルを開く際の引数を"a"とする必要があります.

fp = fopen("result/data.txt", "a");

 

 

上に戻る