gpt4 book ai didi

c++ - 如何将 std::istream 转换为 std::wistream

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:08 28 4
gpt4 key购买 nike

我有一个 istream,一些代码需要一个 wistream。

我确实希望将源流的每个字符零扩展为 wchar_t。我不关心代码页,我不关心本地化,我只是想无缝地传输这个输入,最快的方法是什么?

最佳答案

您可以编写一个读取缓冲区,使 istream 中的底层流缓冲区适应您的 wistream:

class adapting_wistreambuf : public wstreambuf {
streambuf *parent;
public:
adapting_istreambuf(streambuf *parent_) : parent(parent_) { }
int_type underflow() {
return (int_type)parent->snextc();
}
};

后来:

istream &somestream = ...;
adapting_wistreambuf sb(somestream.rdbuf());
wistream wistream(&sb);

// now work with wistream

这只实现了 streambuf 接口(interface)的最低限度。如果需要,您可以添加缓冲区管理代码以提高性能。

关于c++ - 如何将 std::istream 转换为 std::wistream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623403/

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