#include #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__) #define WIN #include #else #include #include #include #include #endif int getMaxX(void) { #ifdef WIN CONSOLE_SCREEN_BUFFER_INFO csbi; if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) { gScreenColumns = (int) csbi.dwSize.X; if (maxX < 80) maxX = 80; } return maxX; #else struct winsize size; if (ioctl(STDIN_FILENO,TIOCGWINSZ, (char*) &size)<0) return 0; else return size.ws_col; #endif } int getMaxY(void) { #ifdef WIN CONSOLE_SCREEN_BUFFER_INFO csbi; if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) { maxY = (int) csbi.dwSize.Y; } return maxY; #else struct winsize size; if (ioctl(STDIN_FILENO,TIOCGWINSZ, (char*) &size)<0) return 0; else return size.ws_col; #endif } int main(void) { printf("width = %d\nheight = %d\n", getMaxX(), getMaxY()); return 0; }