#include <iostream>
使用 命名空間 std.com.cn>。
int main()
{
double B = 2006.008;
printf(".2f"/span>, B)。
return 0;
輸出:
2006.01
開頭有空白的地方
我想用下劃線(_)替換這些空白。在列印中是否有任何語法或任何直接的方法來做到這一點?
我想要的輸出:
_______ 2006.01。
uj5u.com熱心網友回復:
使用std::format(C 20),你可能會做:
std::format("{:_>15.2}", B) 。
uj5u.com熱心網友回復:
或任何直接的方法來做到這一點?
一個解決方案是使用iomanip操縱器:
#include <iostream>
#include <ioomanip>
int main()
{
double B = 2006.008;
printf(".2f
", B); // Original
std::cout
<< std::setfill('_') // 填充字符。
<< std::right //右對齊[/span]。
<< std::setw(15) // field width。
<< std::fixed //固定的精度。
<< std::setprecision(2) //2位小數。
<< B;
}
輸出:
2006.01
________2006.01
uj5u.com熱心網友回復:
正如評論中建議的那樣,你可以為此寫一個函式,但不能用printf()。
#include <algorithm>
#include <iostream>
std::string formatNumber(double number)
{
char buffer[15 1 2] 。
sprintf(buffer, ".2f"/span>, number);
std::string s(buffer)。
std::replace(s.begin(), s. end(), ' ', '_') 。
return s;
}
int main()
{
double B = 2006.008;
auto toPrint = formatNumber(B);
std::cout << toPrint << std::endl;
return 0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/333766.html
標籤:
上一篇:在C 中把一個函式分配給一個變數
下一篇:如何從登錄名匯出異步變數
