• ベストアンサー

複数列でのファイル出力

こんばんは。 今プログラムを作っていて行き詰っています。 ある計算をした結果を fprintf(fp,%8.8f,x[0][j]); とすれば1行で出力でき、この計算結果を2行で出力するには fprintf(fp,%8.8f %8.8f,x[0][j],x[1][j]); とすればよいのはわかるのですが、 さらに多くの行(例えば100行で出力したい場合にはどのように指定すればよいのでしょうか? %8.8fを100個書くというやり方ではかなり苦労してしまい、困っています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.3

#2です。 間違えました。1000じゃなくて、100ですね。 for(i=0;i<100;++i) fprintf(fp,"%8.8f ",x[i][j]); fprintf(fp,"\n"); 行末の余分な空白を出さないなら、 for(i=0;i<99;++i) fprintf(fp,"%8.8f ",x[i][j]); fprintf(fp,"%8.8f\n",x[99][j]);

kenkenkenken25
質問者

お礼

ありがとうございます! できました!こういう指定の仕方は知りませんでした。 これからも頑張ってプログラムを勉強していこうと思います!

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

本文中に行とお書きですが、タイトルに列とあるので列(横方向)のことですよね? int i; for(i=0;i<1000;++i) fprintf(fp,"%8.8f ",x[i][j]); fprintf(fp,"\n"); のようにすれば、1行に1000個の数字を書けます。 あと、%8.8f は、小数点以下8桁で全体も8桁という意味ですが、小数点以下8桁に加え、小数点と1の位と負の場合は符号とがつくので全体では10桁ないし11桁になります。

noname#86752
noname#86752
回答No.1

for (int i = 0; i < 100; i++) { fprintf(fp, "%8.8f ", x[0][i]); } これじゃダメですか? ちょっと工夫すれば最後の空白もなくせますけど。

関連するQ&A