8

我有这段代码,想知道是否可以让 stringstream 将 uint8_t 视为数字而不是字符?

uint8_t s;
std::stringstream sstream( "255" );
sstream >> s;
std::cout << s << " equals 50/'2' not 255 " << std::endl;

s 应该是 255 而不是 50/'2'

4

2 回答 2

3

如果您使用 std::stringstream 将 uint8_t 转换为字符串,则可以使用std::to_string代替。仅在 c++11 中允许。

C++11 功能

#include <stdint.h>
#include <iostream>
uint8_t value = 7;
std::cout << std::to_string(value) << std::endl;
// Output is "7"
于 2014-03-31T14:05:23.703 回答
1

将其转换为int

std::cout << (int)s << " equals 2 not 255 " << std::endl;
于 2013-02-23T23:43:17.073 回答