时装展示的宽度
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.
相关文章:
- 没有找到相关文章