
30.05.2010, 19:03
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
Взято из примеров boost'a.
Функции чтения текстовых файлов.
Код:
#include <iostream>
#include <fstream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
// Helper function reading a file into a string
///////////////////////////////////////////////////////////////////////////////
inline std::string
read_from_file(char const* infile)
{
std::ifstream instream(infile);
if (!instream.is_open()) {
std::cerr << "Couldn't open file: " << infile << std::endl;
exit(-1);
}
instream.unsetf(std::ios::skipws); // No white space skipping!
return std::string(std::istreambuf_iterator<char>(instream.rdbuf()),
std::istreambuf_iterator<char>());
}
Чем boost'овский вариант лучше(правильней?), чем скажем этот?
Код:
std::string read_from_file(char const* infile) {
std::ifstream instream(infile);
if (!instream.is_open()) {
std::cerr << "Couldn't open file: " << infile << std::endl;
exit(-1);
}
std::string str;
std::getline(instream, str, '\0');
return str;
}
Понятное дело там(в boost'e) что попало не пишут и раз делают так, то скорее всего так лучше(правильней?), хочется узнать из за-чего и почему.
Последний раз редактировалось rudvil; 30.05.2010 в 19:07..
|
|
|