1

我在 C++ 中有以下代码,它应该采用led_pwm十六进制变量,并将其转换为 string led_pwm_string

long int led_pwm=0x0a;

std::ostringstream ostr;
ostr << std::hex << led_pwm; //use the string stream just like cout,
                             //except the stream prints not to stdout 
                             //but to a string.

std::string led_pwm_string = ostr.str(); //the str() function of the stream
                                         //returns the string

我对这段代码的唯一问题是,对于led_pwm介于0x00and之间的任何值0x0a,它都会转换为led_pwm_string. 这给我以后带来了问题。

在所有可能的情况下,我都希望它led_pwm_string始终包含一个 2 位数的字符串。因此,如果led_pwm0x01(例如),那么led_pwm_string将是01,而不仅仅是1

4

1 回答 1

6

Try:

ostr << std::hex << std::setw(2) << std::setfill('0') << led_pwm;

You might need to #include <iomanip>.

于 2014-11-17T23:32:02.743 回答