LoginSignup
5
5

More than 5 years have passed since last update.

D言語でターミナルの大きさを得る

Posted at

横幅ぴったりに表示させたいとか、lsコマンドのように長いリストを折り返しせずに複数列表示したりするときには、端末(ターミナル)の幅と高さを知る必要があります。

D言語でこの2つを取得したいときは、 core.sys.posix を使うと可能です。より簡単な方法があったら教えてください。

import std.stdio;
import core.sys.posix.unistd;
import core.sys.posix.sys.ioctl;

void main(string[] args) {
  winsize ws;
  if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1) {
    writeln("width = ", ws.ws_col);
    writeln("height= ", ws.ws_row);
  }
}

ターミナルを開いて、ウィンドウの大きさを変えながら何度か実行してみてください。
Windows の場合はまた別の方法が必要です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5