ifstreamで読み取ったデータをファイルの終端までstringにinsertしていきます。
#include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <locale.h> #include <fstream> /* 指定したファイルをstringに読み込む */ std::string ReadStringFromFile ( std::wstring oPath ) { std::ifstream oIfstream( oPath.c_str() ); std::string oResultString; // ファイルのオープン確認 if ( oIfstream.is_open() ) { // read file const std::size_t blockSize = 1024 * 1024; // バッファの確保 char* cpBuf = new char[ blockSize ]; if ( NULL != cpBuf ) { // 読み出したサイズ int nReadByte = 0; // ブロック単位で読み出し while ( ( nReadByte = oIfstream.read( cpBuf, blockSize ).gcount() ) > 0) { // 文字列追加 oResultString.insert( oResultString.size(), cpBuf, nReadByte ); } // バッファの解放 delete [] cpBuf; } } // 読み込んだ内容を返す return( oResultString ); } int _tmain ( int argc , _TCHAR* argv[] ) { // 標準出力にユニコード出力する setlocale( LC_ALL, "Japanese" ); // 指定したファイルをstringに読み込む std::string oString = ReadStringFromFile( L"test_file.txt" ); // 標準出力へ出力する std::cout << oString << std::endl; // 正常終了 return( 0 ); }
ファイルの内容です。