ホームページ >バックエンド開発 >C++ >ifstream::read() を使用してファイルのすべてのバイトを Char 配列に読み取る方法は?

ifstream::read() を使用してファイルのすべてのバイトを Char 配列に読み取る方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 14:32:30494ブラウズ

How to Read All Bytes of a File into a Char Array Using ifstream::read()?

ファイルのすべてのバイトを Char 配列に読み取る

inputFile 文字列に格納されたファイル パスと文字配列バッファーを指定すると、事前に定義されたサイズの場合、この質問ではファイルのバイトをバッファに読み取る方法を検討します。

一般的なファイルの読み取りには std::vector が使用されます。および std::istreambuf_iterator。ただし、バイトをストリームとして読み取る必要があるシナリオもあります。

バイト アクセスの ifstream::read()

ファイルをバイト ストリームとしてキャプチャするには、 ifstream::read() が採用されています:

<code class="cpp">// Open file
std::ifstream infile(inputFile);
infile.seekg(0, std::ios::end);
size_t length = infile.tellg();
infile.seekg(0, std::ios::beg);

// Read file
infile.read(buffer, length);</code>

Seekg() とTellg()

seekg() および Tellg() は、ファイル サイズを決定するために利用されます。ただし、tellg() はすべての状況で正確なファイル サイズを保証するわけではないことに注意することが重要です。

バイナリ モードに関する考慮事項

ファイルを開くときは、次のことを考慮してください。 std::ios_base::binary を使用してバイナリ モードを有効にして、バイトに影響を与える可能性のある文字変換を防止します。 count.

バッファ読み取りの処理

複数のバッファ読み取りが使用される場合、std::ifstream::gcount() を使用して読み取られた文字数を追跡することが重要です。 .

以上がifstream::read() を使用してファイルのすべてのバイトを Char 配列に読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。