当我从stringstream读取数据时,我有一个关于如何使用ntohs()的问题。
以获取以下代码:
read(ns, buf_receive, BUFFER_SIZE);
stringstreams ss(buf_receive);
char[2] a;
short int b;
ss << a[0] << a[1];
ss << b;
cout >> b;我的问题在于我收到的数据格式不是纯short格式。所以我不能把这个函数直接放到buf_receive上,比如:ntohs(buf_receive),也不能把它用在b上,比如:ntohs(b)。
那么,有没有好的方法(不用手动移位)来实现这一点呢?
发布于 2012-05-18 02:40:53
您总是可以创建一个包含short的类,然后定义自定义operator>>和operator<<来读/写流中的值,这两个类通过分别调用ntohs和htons来处理字节排序。
然后,将示例中short的用法替换为新的类类型。
作为它的作业,我不会提供一个实现。
https://stackoverflow.com/questions/10638734
复制相似问题