2

当我ntohs()stringstream.

对于以下代码:

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)

那么有没有一种好方法(不诉诸手动移位)来实现这一点?

4

1 回答 1

1

您始终可以创建一个包含 a 的类short,然后定义自定义operator>>operator<<从流中读取/写入值,这些值分别通过调用ntohs和来处理字节顺序htons

然后,short用您的新类类型替换示例中的用法。

作为其家庭作业,我不会提供实现。

于 2012-05-17T18:40:52.560 回答