Creating fstream object from a FILE* pointer

后端 未结 2 1040
误落风尘
误落风尘 2020-12-18 18:27

The well known way of creating an fstream object is:

ifstream fobj(\"myfile.txt\");

ie. using a filename.

2条回答
  •  被撕碎了的回忆
    2020-12-18 18:34

    You can create a string, and use fread to read and append to it. It's not clean, but you're working with a C interface.

    Something like this should work:

    FILE * f = popen(...)
    const unsigned N=1024;
    string total;
    while (true) {
        vector buf[N];
        size_t read = fread((void *)&buf[0], 1, N, f);
        if (read) { total.append(buf.begin(), buf.end()); }
        if (read < N) { break; }
    }
    pclose(f);
    

提交回复
热议问题