C でファイルの内容を文字配列として読み取る方法
背景
この質問inputFile という名前のファイルのバイトを文字配列バッファーに移入する方法を尋ねます。ユーザーは、ifstream::read() の代わりに getline() を使用する他の提案されたアプローチで問題が発生しました。
解決策
これに対処するアプローチはいくつかあります。 task:
ifstream::read() の使用
このメソッドには以下が含まれます:
コード例:
<code class="cpp">// Open file in binary mode std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Get file length infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
istreambuf_iterator の使用
このアプローチはより現代的で、反復子を使用してファイルを読み取ります。
コード例:
<code class="cpp">// Create iterators std::istreambuf_iterator<char> begin(infile); std::istreambuf_iterator<char> end; // Create vector std::vector<char> contents(begin, end); // Copy vector to array std::copy(contents.begin(), contents.end(), buffer);</code>
考慮事項
以上がC で ifstream::read() と istreambuf_iterator を使用してファイルの内容を文字配列として読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。