我想将数据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函数而无需手动编码就可以做到这一点。有可能。
共享指针对于此问题有点开销。您需要尊重它。然后,您需要将数组转换为指针。您可能还想根据问题创建一个输出流而不是一个输入流。 :
#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]);
}