2011-02-08 68 views

回答

3

由於您將它標記爲C++,使用C++的流進行處理的方式如下:

#include <sstream> 
#include <iomanip> 
#include <iostream> 

int main() {  
    int value = 1; 
    std::stringstream ss; 
    ss.width(2); 
    ss << std::setfill('0') << value; 

    std::cout << ss.str() << std::endl; // displays '01' 
} 
0

如果使用的printf,使用下面的說明符甲酸

printf("%02d\n",myInt); 

在此,0之後百分比指示前導零填充和2表示的2

0

場寬度爲一個整數,它將始終爲1, 只有當您將其重新顯示爲字符串以進行顯示時,才能顯示01。

,最好的辦法是使用中的printf

printf("%02d", x); 
1

integer類型使用其所有內存(通常爲32位或64位)來覆蓋它可能的最大可能範圍的不同整數值。它不會跟蹤任何格式/顯示信息。因此,即使是一個32位的值也可以跟蹤大約40億個不同的值,但是它們將被顯示在屏幕上,在文件等中必須由周圍代碼決定,並且不是integer本身的屬性。所以,如果你有一個整數,你可以在顯示時選擇格式。有很多種方法可以做到這一點。大多數C++的方式是使用std::ostream<iomanip>標題,其中包括對指定字段寬度和填充/填充字符的支持。有關示例,請參閱http://www.cplusplus.com/reference/iostream/manipulators/setw/,您可以按照「另請參閱」鏈接進行設置。選自C繼承的辦法是...

printf("%02d", n); 

...其中,所述第一雙引號字符串部分包含一個「格式字符串」,其中%引入了一個轉換,0表示對墊和2是寬度,d表示參數列表中的下一個十進制/整數值。

2

不要混淆存儲的值與您想要的方式的介紹。

你可以使用:

#include <iostream> 
#include <iomanip> 

int main() { 
    int x = 1; 
    std::cout << std::setfill('0') << std::setw(2) << x << std::endl; 
    return 0; 
} 

,輸出:

01