gpt4 book ai didi

c++ - 在 C++ 中将文本发送到管道的正确方法

转载 作者:行者123 更新时间:2023-11-30 02:05:09 25 4
gpt4 key购买 nike

我打开了一个管道到一个读取文本输入的程序。

这是我目前正在做的

FILE* p = popen("myprogram", "w");
string myBuff;
//write something to myBuff
fprintf(p, "%s\n", myBuff.c_str());

这就是我想做的

 p = popen("myprogram", "w");
p << "my text" << endl;

Boost 有这方面的东西吗?我认为这是一个经常遇到的问题,通常是如何解决的?

最佳答案

一个不涉及 Boost 的快速而肮脏的解决方案是简单地重载 operator<<为你的FILE*类型。

FILE* operator<<(FILE* fptr, const std::string& input_string)
{
fprintf(fptr, "%s\n", input_string.c_str());
return fptr;
}

这不适用于像 std::endl 这样的流修饰符等,但如前所述,它以一种快速而肮脏的方式完成了工作。 Boost 本身没有任何问题,但我认为只是想获得使用 operator<< 的能力。语法,有点重。

关于c++ - 在 C++ 中将文本发送到管道的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com