c++ - 如何从 C/C++ 程序中找到终端列的数量?

标签 c++ c formatting terminal

<分区>

Possible Duplicate:
Getting terminal width in C?

在 Linux 和 OS X 上,我的 shell 报告 $COLUMNS 具有终端窗口的宽度——调整窗口大小将调整此 shell 变量。

但在我的 C/C++ 程序中,getenv("COLUMNS") 似乎没有找到变量。

谁有解释?或者让我的 C++ 程序计算出它正在运行的终端的宽度的替代建议(对于一些帮助消息自动换行)?

最佳答案

也许是这样的:

#include <sys/ioctl.h>
#include <stdio.h>

int main()
{
    struct winsize w;
    ioctl(0, TIOCGWINSZ, &w);

    printf("lines %d\n", w.ws_row);
    printf("columns %d\n", w.ws_col);
    return 0;
}

直接取自:Getting terminal width in C?

关于c++ - 如何从 C/C++ 程序中找到终端列的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657048/

相关文章:

c++ - 将 MFC CMap 用于 CString int 对

c++ - 将整数转换为数字数组

python - 将长数字格式化为字符串

c# - .NET 有免费的 SQL 格式化库吗?

c++ - 错误地检测矩形之间的碰撞

使用 VBA 读写后 Excel 日期更改(月份和日期交换)

c++ - Clion:如何正确地将图像、xml、资源...添加到 cmake

c# - 将 T-SQL 连接到 C++ 或 C#

c++ - linux VS windows 上的 UDP 组播差异

c - 在二维数组中查找重复项 - 行和列