相关疑难解决方法(0)

在C中获得终端宽度?

我一直在寻找一种从我的C程序中获取终端宽度的方法.我一直想出的是:

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

int main (void)
{
    struct ttysize ts;
    ioctl(0, TIOCGSIZE, &ts);

    printf ("lines %d\n", ts.ts_lines);
    printf ("columns %d\n", ts.ts_cols);
}
Run Code Online (Sandbox Code Playgroud)

但每次我尝试我得到

austin@:~$ gcc test.c -o test
test.c: In function ‘main’:
test.c:6: error: storage size of ‘ts’ isn’t known
test.c:7: error: ‘TIOCGSIZE’ undeclared (first use in this function)
test.c:7: error: (Each undeclared identifier is reported only once
test.c:7: error: for each function it appears in.)
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗,还是有更好的方法?如果不是,我怎么能让它工作?

编辑:固定代码是

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

int main (void)
{
    struct winsize …
Run Code Online (Sandbox Code Playgroud)

c linux terminal width

84
推荐指数
3
解决办法
7万
查看次数

获取终端窗口的大小(行/列)

有没有可靠的方法来获取当前输出终端窗口的列数/行数?

我想在C/C++程序中检索这些数字.

我主要是在寻找GNU/Linux解决方案,但也需要Windows解决方案.

c c++ shell terminal

20
推荐指数
4
解决办法
2万
查看次数

在 Rust 中获取控制台宽度

当对输出进行换行以使其在视觉上令人愉悦时,了解控制台窗口或至少了解缓冲区宽度会很有帮助。

有如何在CC++中执行此操作的答案,C# 甚至具有使此任务变得容易的属性。但是铁锈呢?

我可以使用什么来获取此信息,还是应该让用户决定我的程序将输出包装在哪里?

console rust

9
推荐指数
1
解决办法
5328
查看次数

升压程序选项:对于终端来说描述太宽

我正在使用Boost Program Options来解析命令行参数(我不想错过它,因为它工作得很好).但是,我有一个问题:Boost程序选项提供了为每个选项分配描述的可能性.然后Boost提供了可能性

cout << program_options_description << endl

很好地显示帮助解释选项.然而,似乎是这些错误消息被调整到终端宽度为80的情况(我从这样的事实得出结论:对于80的宽度,线断开很好地设置).

如果我当前的终端有另一个宽度(特别是一个少于80列的宽度),由于终端自动换行,显示的帮助看起来非常不自然.

那么:Boost是否有可能自动将选项描述调整为当前终端宽度?

c++ boost-program-options

4
推荐指数
1
解决办法
1528
查看次数

C++ 如何获取窗口大小(宽度和高度)?

我正在尝试创建一个图表,我需要知道用户运行代码的窗口的大小。我正在尝试缩放数据,以便数据仅显示在窗口的大小上,而无需换行或滚动. 我在 Windows 上,但我想使用类似于 Linux 的东西

int lines = atoi(getenv("LINES") ;
int cols  = atoi(getenv("COLUMNS") ;
Run Code Online (Sandbox Code Playgroud)

所以我可以缩放数字并显示这样的图表

320 a ============================================================
160 b ==============================
 80 c ===============
 40 d =======
 20 e ===
 10 f =
  5 g 
  2 h 
  1 i 
  2 j 
 17 k ===
 41 l =======
 67 m ============
 97 n ==================
127 o ========================
157 p =============================
191 q ====================================
227 r ===========================================
257 s ================================================
283 t =====================================================
331 u ==============================================================
367 v =====================================================================
373 …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
2
解决办法
2万
查看次数

cout的宽度 - 显示

我想知道:是否可以在标准输出中获得一条线的宽度?没有std::cout.width()std::setw()宽度,但操作系统之前字符的实际最大数量将换行?

编辑:只是为了通知,我目前正在使用Windows XP,虽然我真的更喜欢便携式方式来做这个(其他一切都是便携式的).

c++ cout command-prompt

1
推荐指数
1
解决办法
1980
查看次数

标签 统计

c++ ×4

c ×2

terminal ×2

boost-program-options ×1

command-prompt ×1

console ×1

cout ×1

linux ×1

rust ×1

shell ×1

width ×1