0

Microsoft の cpprest SDK を使用して、インターネット経由でバイナリ データを読み取っています。以下の私の変数streamは typeconcurrency::streams::istreamです。100 万行の型を読み取って処理しようとしてstruct rowいます。要求したすべてのバイトを取得できないことがわかりました。これをコーディングする良い方法があると思いますが、理解できませんでした。また、バッファから行を抽出するためのキャストが正しい方法ではないのではないかと思います。どんな助けでも大歓迎です。

struct row {
    unsigned long long tag_id : 32, day : 32;
    unsigned long long time;
    double value;
};

size_t row_count = 1000000;
concurrency::streams::container_buffer<vector<uint8_t>> buffer;
size_t bytes_requested = sizeof(row) * row_count;
size_t bytes_received = stream.read(buffer, bytes_requested).get();
// bytes_received does not always match bytes requested
for (size_t i = 0; i < row_count; ++i) {
    row &r = *(row *) &buffer.collection()[i * sizeof(row)];
    // do something with row here
}
4

0 に答える 0