【发布时间】:2017-03-24 16:21:01
【问题描述】:
我正在使用的库需要一个 FILE* 作为输入来存储未知数量的文本。通常我可以将 cout 作为 FILE* 传递,但我想将这个未知大小的文本捕获到一个变量中。
有没有一种好方法可以为要填充的不断增长的缓冲区创建 FILE*?
我知道这样的事情 -
char output[1024]
FILE *foutput = fmemopen(output, 1024, "w");
但据我了解,这会打开一个可写入的 1024 字节的固定大小缓冲区。
【问题讨论】:
-
您在寻找动态分配内存之类的东西吗?还是您的问题与重定向标准输出有关?
-
C 不是 OOP 语言。您不能扩展/重载运算符或扩展类型。而
FILE是实现定义的不透明类型(分别应视为一个)。 -
@Olaf:
QString是C++不是C。我猜C标签只是因为C中的答案是可以接受的。 -
@AdrianMaire:显示的代码是C,所以我评论了C。我的评论有什么问题?我有没有说过在 C++ 中不可能做到的事情?