回答
使用cout.width(n)和cout.precision(N);
因此,舉例來說:
cout.width(5);
cout << nodes << " ";
cout.width(3);
cout << depth << " ";
cout.setiosflags(ios::fixed);
cout.precision(2);
cout.width(4);
cout << best_score/100.0 << " " << endl;
你可以連在一起的事情:
cout << width(5) << nodes << " " << width(3) << depth << " "
<< setiosflags(ios::fixed) << precision(2) << best_score/100.0 << " "
<< endl;
在鏈中,'width'->'setw'和'precision'->'setprecision'。 chainables以'set'開頭,成員不以'set'開頭。 –
#include <iostream>
#include <iomanip>
void func(unsigned long nodes, int depth, float best_score) {
//store old format
streamsize pre = std::cout.precision();
ios_base::fmtflags flags = std::cout.flags();
std::cout << setw(5) << nodes << setw(3) << depth;
std::cout << showpos << setw(4) << setprecision(2) << showpos (best_score/100.);
//restore old format
std::cout.precision(pre);
std::cout.flags(flags);
}
輸出後如何將格式設置重置爲默認值? –
爲什麼你使用'setprecision'作爲深度而不是'setw'? – Shahbaz
@Shahbaz:無法正確理解printf標誌:(我剛注意到我也忽略了best_score上的標誌標誌。 –
說實話,我從來都不喜歡ostream的格式化機制。當我需要做這樣的事情時,我傾向於使用boost::format。
std::cout << boost::format(" %5lu %3d %+1.2f ") % nodes % depth % (best_score/100.0);
- 1. 轉換一個C的printf(%C)到C#
- 2. C printf輸出到變量
- 3. c printf signed float
- 4. C stdout printf
- 5. C編程printf
- 6. C++用的printf
- 7. C printf輸出
- 8. 用printf在c
- 9. C++ printf舍入?
- 10. 用printf用C
- 11. 打印 '%' 與C的printf/C++
- 12. C++的cout像C的printf
- 13. C printf NSDATA(Objective C類型)
- 14. C printf格式化
- 15. c-cant printf成本
- 16. 的printf在用C
- 17. printf array 7x7 in c
- 18. C修改printf()以輸出到文件
- 19. 將printf重定向到管道C
- 20. C++延遲printf直到需要
- 21. printf和memcpy鏈接到標準C庫
- 22. printf in C - 指針變量%p%c%s
- 23. eclipse C/C函數'printf'無法解析
- 24. printf中%c和%C有什麼區別?
- 25. 將printf C++控制檯輸出重定向到C#
- 26. 如何將C++ dll printf導入到c#文本框
- 27. C printf整數類型U32
- 28. C - printf(「%s」)顯示符號
- 29. C printf壓痕問題
- 30. 類似於C++的printf
9個問題,您還沒有接受過單個答案?我們爲什麼要麻煩幫你? – abelenky
你絕對需要改變它嗎? –
轉換的哪一部分有問題?你知道每個printf組件的含義嗎?我已經投票決定將其視爲「過於本地化」,因爲沒有人會關心這個具體問題的答案。請重新修改它以使其更通用,例如詢問如何轉換printf字符串的較小部分。例如,您可以指出'+號,然後詢問如何使用iostream風格的格式強制數字標記。 –