std string 有关问题 is >> std:hex >> inbound_data_size
std string 问题 is >> std::hex >> inbound_data_size
inbound_header_ 是一个字符串。
不明白红字部分的意思,求教!
1. is >> std::hex >> inbound_data_size 是什么类型的?就是a= is >> std::hex >> inbound_data_size,a是什么类型的?
2. is >> std::hex >> inbound_data_size达到的效果是什么???
std::istringstream is(std::string(inbound_header_, 8));
std::size_t inbound_data_size = 0;
if (!( is >> std::hex >> inbound_data_size ))
{
// Header doesn't seem to be valid. Inform the caller.
// Your code
return;
}
------解决方案--------------------
is是个流,你自己定义的很清楚;
std::istringstream is(std::string(inbound_header_, 8));//定义并初始化
is>>std::hex >> inbound_data_size 达到的效果是:
以十六进制格式,将流中的数据输出到变量inbound_data_size 中;
------解决方案--------------------
语句“is >> std::hex >> inbound_data_size ”返回std::istringstream,些对象包含操作符operator bool,
根据些函数判断对象的状态是否合法。
------解决方案--------------------
你标识的红色没有包含if,我认为你只是不理解std::hex在这里有什么用。
其实你可以单独试一下这条语句,比如:
inbound_header_ 是一个字符串。
不明白红字部分的意思,求教!
1. is >> std::hex >> inbound_data_size 是什么类型的?就是a= is >> std::hex >> inbound_data_size,a是什么类型的?
2. is >> std::hex >> inbound_data_size达到的效果是什么???
std::istringstream is(std::string(inbound_header_, 8));
std::size_t inbound_data_size = 0;
if (!( is >> std::hex >> inbound_data_size ))
{
// Header doesn't seem to be valid. Inform the caller.
// Your code
return;
}
------解决方案--------------------
is是个流,你自己定义的很清楚;
std::istringstream is(std::string(inbound_header_, 8));//定义并初始化
is>>std::hex >> inbound_data_size 达到的效果是:
以十六进制格式,将流中的数据输出到变量inbound_data_size 中;
------解决方案--------------------
语句“is >> std::hex >> inbound_data_size ”返回std::istringstream,些对象包含操作符operator bool,
根据些函数判断对象的状态是否合法。
------解决方案--------------------
你标识的红色没有包含if,我认为你只是不理解std::hex在这里有什么用。
其实你可以单独试一下这条语句,比如:
- C/C++ code
int a; cin>>hex>>a; cout<<a<<endl;