如何将数据从char数组发送到C ++类中的istream

问题描述 投票:0回答:1

我想将数据f char数组从主函数发送到类的istream成员,如下代码:

class StreamClass {
    public:
        std::shared_ptr<std::istream> istream_ptr;
};
int main(){    
    StreamClass sc;    
    char charArray[] = "hello world";
    sc.istream_ptr = std::make_shared<std::istream>(nullptr);   
}

我阅读了此链接Get an istream from a char*。但是我只想使用简单的std函数而无需手动编码就可以做到这一点。有可能。

c++ istream
1个回答
1
投票

共享指针对于此问题有点开销。您需要尊重它。然后,您需要将数组转换为指针。您可能还想根据问题创建一个输出流而不是一个输入流。 :

#include "iostream"
#include "memory"

class StreamClass {
    public:
        std::shared_ptr<std::istream> istream_ptr;
        std::shared_ptr<std::ostream> ostream_ptr;
};
int main(){
    StreamClass sc;
    char charArray[] = "hello world";
    sc.istream_ptr = std::make_shared<std::istream>(nullptr);
    sc.ostream_ptr = std::make_shared<std::ostream>(nullptr);
    std::cout << &(charArray[0]) << std::endl;
    *sc.ostream_ptr << &(charArray[0]);
    *sc.istream_ptr >> &(charArray[0]);
}

© www.soinside.com 2019 - 2024. All rights reserved.