gpt4 book ai didi

c++ - wcout 是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:36 34 4
gpt4 key购买 nike

我在控制台应用程序中使用 wcout 时注意到一个奇怪的问题。

调用某个函数后,其余的wcout调用根本不起作用。即输出语句没有出现在控制台上。

我注意到在函数中,我使用了一个从未分配过的宽字符数组。

WCHAR wArray[1024];
wcout<<wArray<<endl;

在这个调用之后,所有其他 wcout 都停止工作了。

所以,我只是想知道是什么让 wcout 与 cout 不同,以及为什么会出现这个问题,

最佳答案

wcout可能正在对输出进行一些 unicode 验证;如果验证失败,则输出失败。这部分是因为 Windows 控制台子系统不能很好地处理 Unicode。

检查流中是否有failbitbadbit放。重置流(例如 wcout.clear())应该恢复流功能。

严格来说,coutstd::basic_ostream<char>wcoutstd::basic_ostream<wchar_t> ... 这就是差异所在。只是如果要使 Unicode 格式良好,则对 Unicode 的要求更高。

关于c++ - wcout 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323288/

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