Чтение файла в строку в C ++ - PullRequest
3 голосов
/ 20 июля 2010

Как человек, который является новичком в C ++ и имеет опыт работы с Python, я пытаюсь перевести приведенный ниже код в C ++

f = open('transit_test.py')
s = f.read()

Какая самая короткая идиома в C ++, чтобы сделать что-то подобное?

Ответы [ 3 ]

6 голосов
/ 20 июля 2010

Я почти уверен, что опубликовал это раньше, но оно достаточно короткое, вероятно, не стоит искать предыдущий ответ:

std::ifstream in("transit_test.py");
std::stringstream buffer;

buffer << in.rdbuf();

Теперь buffer.str() - это std::string, содержащее содержимое transit_test.py.

6 голосов
/ 20 июля 2010

C ++ STL способ сделать это так:

#include <string>
#include <iterator>
#include <fstream>

using namespace std;

wifstream f(L"transit_test.py");
wstring s(istreambuf_iterator<wchar_t>(f), (istreambuf_iterator<wchar_t>()) );
0 голосов
/ 20 июля 2010

Вы можете читать файлы в C ++ следующим образом:

#include <iostream>
#include <fstream>
#include <string>

int main ()
{
    string line;
    ifstream in("transit_test.py"); //open file handler
    if(in.is_open()) //check if file open
    {
        while (!in.eof() ) //until the end of file
        {
            getline(in,line); //read each line
            // do something with the line
        }
        in.close(); //close file handler
    }
    else
    {
         cout << "Can not open file" << endl; 
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...