2

だから私はこれを持っています:boost::array data_;

通常の BYTE/Char バッファに変換するにはどうすればよいですか、または printf を使用して変換せずに内部のデータを出力するにはどうすればよいですか?

「こんにちは」などの他の通常の文字バッファと比較するにはどうすればよいですか。また、boost::array がどのように機能するかを知ることも非常に役立ちます (boost async.tcp サーバーを作成しています)。

私はいくつかのことを試しましたが、バッファ内の文字を印刷できませんでした。ブーストするのは初めてです。

ブーストに関するドキュメントはあまり見つかりませんでした。

ありがとうございました。

4

1 に答える 1

1

boost::array クラスはパラメーター化された型です。つまり、この型の変数の完全な型名は、boost::array<char,10>char 型の要素を 10 個含む配列、またはboost::array<float,100>float 型の要素を 100 個含む配列のようなものです。

Tdata_であるタイプboost::array<T ,Nの変数がたまたまある場合、その中の文字を出力するのは簡単です。>char

std::cout.write(data_.data(), data_.size());

Tがの場合wchar、次のことができます。

std::wcout.write(data_.data(), data_.size());

特定boost::arrayのタイプに他の要素タイプTが含まれている場合は、要素をどのように出力するかを検討する必要があります。たとえば、型のデフォルトのストリーム表現に満足している場合は、次のようにすることができます

for (auto element : _data) {
    std::cout << element << "\n";
}

1 行に 1 つの要素を出力します。

boost::arrayクラスのドキュメントはhttp://www.boost.org/doc/libs/1_53_0/doc/html/boost/array.htmlにあります。

于 2013-06-28T23:04:37.157 に答える