时装展示的宽度

Width of cout - display

本文关键字:时装展      更新时间:2023-10-16

我想知道:有可能在标准输出中获得一行的宽度吗?不是std::cout.width()std::setw()宽度,而是操作系统换行之前的实际最大字符数?

编辑:只是为了通知大家,我目前使用的是windowsxp,尽管我真的更喜欢一种可移植的方式(其他都是可移植的atm)。

不使用标准C++。cout不需要绑定到控制台,在控制台中"宽度"将毫无意义。

当然,也可以使用其他一些库,例如ncurses

如果您使用的是Linux,请选中Getting terminal width in C?;如果您使用的是Windows,请选中Getting terminal size in c for Windows?。

在我使用的系统(Windows和Unix)上,操作系统从不换行。然而,各种显示设备可能;通常的xterm窗口例如,X或Windows下的控制台窗口将在一定数量的字符,如果你输出到其中一个,在片刻然而,我不知道它是否真的有用,因为它可以在你阅读它的时刻和你输出的时刻之间变化。

当输出到一个文件时,当然没有换行,我已经偶尔不得不处理行长度远远超过百万个字符。

适用于Windows的控制台宽度

在使用windows.h的窗口上,您可以查询控制台大小并计算宽度,如下所示。

示例c++

#include <iostream>
#include <windows.h>
CONSOLE_SCREEN_BUFFER_INFOEX consolesize{};
consolesize.cbSize = sizeof(consolesize);
GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE) ,&consolesize);
// calculate width
SHORT width = consolesize.srWindow.Right - consolesize.srWindow.Left;
// Fill line with *
std::cout << std::setfill('*') << std::setw(static_cast <int>(width)) << "n";

它在consoleapi2.h中定义。我不知道遗产状况。在Win11.

上测试
相关文章:
  • 没有找到相关文章