gpt4 book ai didi

c++ - 如何正确使用 WriteConsoleOutputAttribute 函数

转载 作者:太空狗 更新时间:2023-10-29 20:11:46 24 4
gpt4 key购买 nike

为什么会出现下面的代码

  const std::string text = "str";

HANDLE stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coords = { 0, 0 };
DWORD written = 0;
WriteConsoleOutputCharacterA(stdout_handle, text.c_str(), text.size(), coords, &written);

WORD attributes = FOREGROUND_GREEN;
WriteConsoleOutputAttribute(stdout_handle, &attributes, text.size(), coords, &written);

结果:

enter image description here

我做错了什么?我该如何解决?

最佳答案

&attributes 指向一个长度为 1 的数组,一个单一的绿色属性。但是您声称该数组是 text.size() 长的。结果,您将随机堆栈内容复制到接下来的 2 个单元格。这恰好看起来是红色的。

解决方法:

std::vector<WORD> attributes(text.size(), FOREGROUND_GREEN);
WriteConsoleOutputAttribute(stdout_handle, &attributes[0] ...

关于c++ - 如何正确使用 WriteConsoleOutputAttribute 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587795/

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