首頁 >後端開發 >C++ >C++程式以指定格式列印值

C++程式以指定格式列印值

王林
王林轉載
2023-09-03 12:33:081002瀏覽

C++程式以指定格式列印值

假設我們有三個雙精確值。我們需要按照以下格式對它們進行格式化和列印。

  • 我們需要以小寫字母的十六進位格式列印第一個值的整數部分。

  • 我們需要列印第二個值,保留兩位小數,並在前面加上符號以顯示它是正數還是負數。要列印的第二個值必須右對齊,長度為15個字符,在左側未使用的位置上用下劃線填充。

  • 我們需要以科學計數法列印第三個值,保留九位小數。

因此,如果輸入為256.367、5783.489、12.5643295643,則輸出將是

0x100
_______+5783.49
1.256432956E+01

為了解決這個問題,我們將按照以下步驟進行:

  • hex標誌以十六進位格式列印值,showbase標誌顯示十六進位值的前綴'0x',left標誌在輸出欄位中插入填充字元以將值填入右側, nouppercase標誌以小寫字母列印輸出。

  • right標誌在輸出欄位中插入填充字元以將值填入左側,fixed標誌以定點表示法列印值,set(15)將輸出欄位長度設為15, showpos標誌在輸出前插入' '符號,setfill('_')用底線填入輸出,setprecision()將值的精確度設定為2位小數。

  • setprecision()將值的精確度設為9位元小數,scientific標誌以科學計數法列印值,uppercase使輸出值變成大寫字母,noshowpos省略輸出值前的任何正號。

讓我們看下面的實作以便更好地理解:

#include <iostream>
#include <iomanip>
using namespace std;

void solve(double a, double b, double c) {
   cout << hex << showbase << nouppercase << left << (long long) a << endl;
   cout << right << fixed << setw(15) << setfill(&#39;_&#39;) << setprecision(2) << showpos << b << endl;
   cout << setprecision(9) << scientific << uppercase << noshowpos << c << endl;
}
int main() {
   solve(256.367, 5783.489, 12.5643295643);
   return 0;
}

輸入

256.367, 5783.489, 12.5643295643

輸出

0x100
_______+5783.49
1.256432956E+01

以上是C++程式以指定格式列印值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除