C++ ifstream 到 char *

标签 c++ string pointers char ifstream

我的代码用 ifstream 读取一个文件并解析它,现在我改变了一些东西,我不需要读取文件,因为是从另一个地方读取的,所以我有一个 char* 而不是 ifstream ...如何更改我使用 ifstream.get() 的代码? 再次感谢

最佳答案

您只需将 char * 放入 std::stringstream

std::stringstream buffer(your_string);

然后您可以像使用 std::ifstream 一样使用 buffer(您无法打开或关闭它)。理想情况下,您的解析方法会将对 std::istream 的引用作为参数,然后它不会介意它接收哪种输入流:

void parse(std::istream & input);

由于 std::ifstreamstd::stringstream 都继承自 std::istream,您可以将它们作为参数传递,并且您的解析器无需修改即可运行。

关于C++ ifstream 到 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960829/

相关文章:

javascript - 为什么 Chrome console.log 以如此烦人的方式显示 String 对象?

javascript - 返回不带斜杠的字符串

c - 二进制搜索单词词典

c - 使用结构时取消引用 'void *' 指针

c++ - 如何访问 C++ Windows 10 应用程序中的默认线程池?

c++ - 看不懂的条件语句

c++ - Linux 上的 OpenAL C++

c - 递增指针时 C 错误中的 2D 动态分配

python - 与 Python 相比,C 中的切片

c++ - 提取字形字距调整信息 C++