看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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)
firejox:- 06/12 22:53
tropical72:幫忙翻譯 : %5lf --> %-5lf, 這一定要配合指定寬度使用 06/12 22:56
可是我同時要限制lf輸出的浮點數精度,這樣要怎麼跟指定寬度同時用啊....@@ ※ 編輯: deo2000 來自: 140.122.43.6 (06/12 22:59)
tropical72:printf("%8.2lf\n", x); printf("%-8.2lf\n",x); 06/12 23:54
tropical72:這並不衝突。 06/12 23:54
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)
loveme00835:負號不是就是向左對齊嗎? 囧 06/13 00:43
ericinttu:可以看一下結果畫面嗎? 06/13 00:45
ericinttu:printf 裡面的 % 弄不到你要的效果, 乾脆用 springf 自 06/13 00:47
ericinttu:己用字串去接起來, 要補多少半形空格自己填. 06/13 00:47
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)
ericinttu:%a.bf a 跟 b 的作用先搞清楚, 別改來改去. 06/13 00:57
a是整數位數,b是小數點位數
softwind:這個 你應該要用 sprintf 一個一個裝到buffer再組起來... 06/13 01:19
loveme00835:想變成怎樣的向右對齊結果? 06/13 01:22
firejox:跟中文尾對齊 06/13 01:34
※ 編輯: deo2000 來自: 218.166.96.44 (06/13 03:58)