TIL 25.02.12 - SetWindowSize(), SetBufferSize()

강진규·2025년 2월 12일

Today I Learned

목록 보기
11/34
post-thumbnail

오늘 오류를 수정 중에 문제가 하나 발생했는데, 콘솔창에 출력된 문자가 너무 길어지면서
화면 밖으로 짤린 문자들이 복사가 되어 계속 남아있었다.

그래서 Clear()가 작동을 안하는 건가 싶어 온갖 곳에 다 넣어서 테스트 했는데,
같은 문제가 계속해서 발생했다.

그러다가 콘솔창의 세로 크기를 늘려서 테스트를 하니까 오류가 발생하지 않았다.
그래서 그 점이 궁금해서 튜터님을 찾아갔더니 알려주신 것이 바로
SetWindowSize(), SetBufferSize()다.

[ SetWindowSize() ]

  • 콘솔 창의 높이와 메서드를 할당된 값으로 변경하는 데 사용
Console.SetWindowSize(40, 40);

Console.WriteLine(Console.WindowWidth);
Console.WriteLine(Console.WindowHeight);

Console.SetWindowSize( 넓이, 높이 ) 의 형식으로 사용하면 된다.
이렇게 넓이와 높이를 설정해주면 콘솔창에 출력이 40 , 40에 한정되게 된다.

콘솔창을 보면 기존처럼 텍스트가 옆으로 쭉 나오지 않고 설정된 넓이에 의해 한정되서 나온다.


[ SetBufferSize() ]

  • 화면 버퍼 영역의 높이와 너비를 지정된 값으로 설정하는 데 사용
  • 높이 또는 너비가 0보다 작거나 같은 경우,
    높이 또는 너비가 MaxValue 보다 크거나 같은 경우,
    음수의 값이 들어간 경우 예외 발생
  • WindowWidth, WindowHeight 보다 작으면 예외 발생
Console.SetWindowSize(10, 10);
Console.SetBufferSize(10, 10);
Console.WriteLine("Start");
while (true)
{
    string str = Console.ReadLine();
    Console.WriteLine(str);
}

마찬가지로 SetBufferSize( 넓이, 높이 )의 형식으로 사용하면 된다.
SetWindowSize와 같이 사용하여 크기를 설정하는 것이 좋다.

설정한 10의 높이로 버퍼가 고정이 되는것 같다. 아마도?
사실 이녀석은 진짜 잘 모르겠다. 그냥 넘어가질때도 있어서 제대로 되는지도 모르겠다.


아무튼 이런게 있다는걸 처음 알기도 했고, 크기를 설정하는 법이 있다는 것도 알았으니
나중에 사용할 일이 있으면 좋겠다.

0개의 댓글