[問題] fprintf如何靠右對齊?

看板C_and_CPP (C/C++)作者 (800IM)時間15年前 (2011/06/12 22:47), 編輯推噓3(309)
留言12則, 5人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2008 問題(Question): ---------code開始---------- fprintf(cfPtr,"呵呵\t哈哈\t先洗澡\n"); for(int i=0;i<nOrder;i++) fprintf(cfPtr,"%1.0lf\t%.2lf\t%.2lf\n",daRank[0][i],daRank[1][i],daRank[2][i]); ---------code結束---------- daRank[][]是一個 double 的2D矩陣, 從0印到nOrder-1會印出很多行, 我希望印到檔案時,每一筆資料都可以以中文字為準,向右對齊, 請問要怎麼做? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.43.6 ※ 編輯: deo2000 來自: 140.122.43.6 (06/12 22:48)

06/12 22:53, , 1F
-
06/12 22:53, 1F

06/12 22:56, , 2F
幫忙翻譯 : %5lf --> %-5lf, 這一定要配合指定寬度使用
06/12 22:56, 2F
可是我同時要限制lf輸出的浮點數精度,這樣要怎麼跟指定寬度同時用啊....@@ ※ 編輯: deo2000 來自: 140.122.43.6 (06/12 22:59)

06/12 23:54, , 3F
printf("%8.2lf\n", x); printf("%-8.2lf\n",x);
06/12 23:54, 3F

06/12 23:54, , 4F
這並不衝突。
06/12 23:54, 4F
for(int i=0;i<nOrder;i++) fprintf(cfPtr,"%-.0f\t%-.2f\t%-.2f\t\n",daRank[0][i],daRank[1][i],daRank[2][i]); 剛才已經改成這樣,還是都靠左對齊耶 ※ 編輯: deo2000 來自: 140.122.43.6 (06/13 00:36)

06/13 00:43, , 5F
負號不是就是向左對齊嗎? 囧
06/13 00:43, 5F

06/13 00:45, , 6F
可以看一下結果畫面嗎?
06/13 00:45, 6F

06/13 00:47, , 7F
printf 裡面的 % 弄不到你要的效果, 乾脆用 springf 自
06/13 00:47, 7F

06/13 00:47, , 8F
己用字串去接起來, 要補多少半形空格自己填.
06/13 00:47, 8F
http://cplusplus.com/reference/clibrary/cstdio/fprintf/ 這個網頁寫的是" Right justification is the default ", 所以我應該不用作任何改變,就要自動向右對齊了不是嗎....@@ 但是不管怎麼搞,就是無法向右~ ***********輸出檔案(無誤差)************ 呵呵 哈哈 先洗澡 3 24.00 52.00 3 336.00 292.00 1 376.99 402.12 2 523.60 314.16 1 628.32 753.98 3 1000.00 700.00 1 1570.80 942.48 1 1781.28 904.78 1 1781.28 904.78 2 4188.79 1256.64 2 14137.17 2827.43 ***********輸出檔案(無誤差)************ ※ 編輯: deo2000 來自: 140.122.43.6 (06/13 00:52)

06/13 00:57, , 9F
%a.bf a 跟 b 的作用先搞清楚, 別改來改去.
06/13 00:57, 9F
a是整數位數,b是小數點位數

06/13 01:19, , 10F
這個 你應該要用 sprintf 一個一個裝到buffer再組起來...
06/13 01:19, 10F

06/13 01:22, , 11F
想變成怎樣的向右對齊結果?
06/13 01:22, 11F

06/13 01:34, , 12F
跟中文尾對齊
06/13 01:34, 12F
※ 編輯: deo2000 來自: 218.166.96.44 (06/13 03:58)
文章代碼(AID): #1DzD605x (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DzD605x (C_and_CPP)