C 基礎 格式化輸出

2021-07-07 01:18:56 字數 2451 閱讀 8668

似乎很少有人強調c++的格式化輸出的問題,那是因為因為c++的編譯器默默地做著許多格式化的動作,以保證c++ style格式化輸出與c-style的格式化的乙個根本不同,c++style的格式化輸出是型別安全的(type-safe),而c-style不是。當然,我們也可以定製這些格式化的動作,就像c那樣,而不全都拜託編譯器。

bool b = bool();            // 顯式地呼叫其建構函式實現對基本型別的初始化

std::cout

<< std::boolalpha << b << std::endl; // 輸出為'false',而不是將bool型別轉化為『0』

如上圖的輸出顯示,setw()預設是右對齊。

共有兩種對齊方式的設定:std::ios::left,std::ios::right,所用到的api是std::setiosflags,以及std::resetiosflags

// 避免使用科學計數法?

使用setprecision()設定的精度位數,最後的輸出結果是一種四捨五入的版本;

std:

:cout

<< std:

:setiosflags(std:

:ios

::fixed)

<< std:

:setprecision(4) << 2./3

<< std:

:endl; //

0.6667

std::cout.precision(20);
std::setfill('')

void showdate(int m, int d, int y)      // 月 日 年

std::hexstd::oct

unsigned

long x = 64206;

std::cout

<< x

<< " in base 8 is \""

<< std::oct << x << "\""

<< " in base 16 is \""

<< std::hex << x << "\""

<< std::endl;

c++庫函式並沒有提供乙個任意進製的轉換,如下是乙個轉換版本:

std::string convbase(unsigned long val, long

base)

while(val);

}return ret;

}

std::cout

<< std::fixed << somenumber<< std::endl;

C 基礎之格式化輸出

在c語言裡面,使用printf 函式格式化輸出。例如printf d f 2.5f a,b,c 但是在c 裡面就尷尬了,cout a b c endl 輸出的都是預設格式,這些往往不是我們需要的格式。在c 裡面也提供了格式化輸出的方法,但是方法比c語言稍微麻煩。c 格式化輸出需要引入標頭檔案 inc...

C 格式化輸出

int a 12345678 格式為sring輸出 label1.text string.format asdfadsfadsfasdf a label2.text asdfadsf a.tostring adsfasdf label1.text string.format asdfadsfadsf...

c格式化輸出

printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。在編寫程式時經常會用到此函式。printf 函式的呼叫格式為 printf 格式化字串 參量表 其中格式化字串包括兩部分內容 一部分是正常字元,這些字元將按原樣輸出,另一部分是格式化規定字元,以 開始,後跟乙個或幾個規定字...