- 论坛徽章:
- 14
|
- std::string foo3( const char* filename ) // 50M文件,文本方式耗时0.203秒,二进制方式耗时0.093秒
- {
- //std::ifstream infile(filename,std::ios::binary);
- std::ifstream infile(filename);
- infile.seekg( 0, std::ios_base::end );
- std::ifstream::pos_type len = infile.tellg();
- infile.seekg( 0, std::ios_base::beg );
- std::string s( len, '\0' );
- infile.read( &s[0], len );
- s.resize( infile.gcount() );
- return s;
- }
- std::string foo4( const char* filename ) // 50M文件,文本方式耗时0.187秒,二进制方式耗时0.078秒
- {
- //FILE* fin = fopen( filename, "rb" );
- FILE* fin = fopen( filename, "rt" );
- fseek( fin, 0, SEEK_END );
- long len = ftell( fin );
- fseek( fin, 0, SEEK_SET );
- std::string s( len, '\0' );
- size_t n = fread( &s[0], 1, len, fin );
- s.resize( n );
- return s;
- }
复制代码 |
|