boost :: filesystem Как с правильным путем к файлу читать его в stringstream? - PullRequest
1 голос
/ 16 апреля 2011

Итак, у меня есть path p, и я могу назвать, например, is_regular_file(p) и file_size(p), но как прочитать этот файл в stringstream?(кстати, мне нужно только прочитать)

Ответы [ 2 ]

6 голосов
/ 16 апреля 2011

Полагаю, вы хотите скопировать весь файл в stringstream.

std::stringstream ss;
ss << std::ifstream( p.string().c_str() ).rdbuf();

Вот демоверсия наизнанку:

Shadow:code dkrauss$ ./ssclone ssclone.cpp 
#include <sstream>
#include <fstream>
#include <iostream>

int main(int, char *argv[] ) {
std::stringstream ss;
ss << std::ifstream( argv[1] ).rdbuf();

std::cout << ss.str() << '\n';
}
1 голос
/ 16 апреля 2011

boost :: filesystem :: path имеет строковый метод.

const std :: string & string () const;

http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/reference.html#Class-template-basic_path

ss << p.string () .c_str (); </p>

...