【问题标题】:GetConsoleScreenBufferInfo for length of a single console lineGetConsoleScreenBufferInfo 获取单个控制台行的长度
【发布时间】:2018-09-24 06:45:36
【问题描述】:

我已经看到here 可以在给定时间获取到控制台的所有输出的长度,但是我想在控制台中获取单个行的长度(即在特定的COORD )。 Win32 API 可以做到吗?

【问题讨论】:

  • “我在这里看到可以在给定时间获取所有输出到控制台的长度”嗯。不。您链接到的答案中的代码不会这样做。
  • @Swordfish Ahh 所以dwSize.X 是控制台缓冲区的最大(?)宽度?
  • @Swordfish 如果是这种情况,我可以使用它。我的问题是我试图从控制台中删除行,但有时它会重叠到下一行并清除它
  • @是的,GetConsoleScreenBufferInfo 为您提供宽度。

标签: c winapi windows-console


【解决方案1】:

使用GetConsoleScreenBufferInfo() 获取控制台屏幕缓冲区的宽度。接下来对您感兴趣的行中从width0 的每个位置执行ReadConsoleOutput() 并检查该位置的字符是否是空白字符(isspace())。如果不是,则您已找到该行中最后一个字符的位置,其X-坐标就是该行的长度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多