ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.02.21 - 과제 중 문제 해결
    C++ 2024. 2. 21. 16:51

    ====================

    위와 같이 출력을 하고 싶어서 setw()함수와 setfill()함수를 사용하기로 했다.

    띠용 결과가 안나온다. 뭐가 문제일까?

     

    setfill('=')을 지우고 playerHp를 출력하도록 바꿔보았다.

    정상적으로 20개의 칸을 만들고 100이 오른쪽에 붙어서 출력되는 것을 확인했다.

     

    setfill('=')을 추가해보았다.

    띠요옹 정상적으로 공백에 '='가 채워서 출력된다.

     

    혹시 setfill('=') 만으로는 출력을 할 수 없는 것일까?

    setfill()이 공백을 채워주지만, 출력할 내용이 없기 때문에 공백을 채워주지 않는 것 같다.

     

    아무 내용 없는 ""을 추가로 출력시켜서 문제를 해결하였다.

     

     

    이제 아래와 같은 출력을 원한다.

    ====================

    | playerHp: 100                  |

    | playerAtk: 20                   |

    ====================

     

    아래와 같은 코드를 짜보았다.

    이런. 변수를 출력시켰더니 공백 밖에서 출력 되는 것 같다. 

    setw(20)이 "| playerHp: "에 적용되고 끝나는 것 같다?

    좀 불편해보이지만 "| playerHp: " 뒤에 남는 공백만큼 setw(7)을 붙여서 해결할 수 있어보인다.

     

    원하는 대로 출력 되는 것 같다.

     

    이제 이쁘게 만들어 보자.

    결과는 만족스럽지만, 변수앞에 일일히 남는 공백을 세어서 setw()를 넣어주어야 하는 번거로움이 있다.

    나중에 다른 방법을 찾아보자.

     

    - setf()는 줄마다 써주어야 한다.

    - setfill()은 바꿔주지 않는 한 다음 줄에도 적용이 된다.

    - std::left도 바꿔주지 않는 한 다음 줄에도 적용이 되는 것 같다.

Designed by Tistory.