如何使用plain c在Windows下的控制檯窗口中檢查ymax和xmax?在c中獲取窗口的終端大小?
有這段代碼的Linux:
#include <stdio.h>
#include <sys/ioctl.h>
int main (void)
{
struct winsize max;
ioctl(0, TIOCGWINSZ , &max);
printf ("lines %d\n", max.ws_row);
printf ("columns %d\n", max.ws_col);
}
現在我不知道我該怎麼做同樣的窗口。我試過winioctl.h
,但它沒有定義struct winsize
,也沒有其他名稱相似的其他人。
任何提示?謝謝。
PS。在linux中,您還可以使用getenv("LINES");
找到控制檯大小。在windows下有沒有類似的變量?
PPS。此外,總是有ncurses.h
,我認爲這兩個系統都可以工作,但是由於與其他庫的衝突,我避免了這個問題。
PPPS。這裏的問題Getting terminal width in C?有很多提示,所以不需要重複說明。
我很短的時間來測試它,但它看起來像這是問題的正確答案。你介意指出這個答案與當前接受的答案之間的區別,它顯示了緩衝區大小嗎?謝謝! –
@DrBeco在大多數情況下,答案中的緩衝區大小和此答案中提到的顯示窗口具有相同的寬度,但這不是必需的。但是,正如您所注意到的,緩衝區和窗口可以並且通常具有不同的高度 - 這是爲了回滾Windows控制檯會話而提供的功能。我覺得用大緩衝區來考慮是最容易的,它有一個較小的視口(顯示)窗口,可以查看主緩衝區的任何部分。 – dgnuff