2024.02.21 - 과제 중 문제 해결
====================
위와 같이 출력을 하고 싶어서 setw()함수와 setfill()함수를 사용하기로 했다.
띠용 결과가 안나온다. 뭐가 문제일까?
setfill('=')을 지우고 playerHp를 출력하도록 바꿔보았다.
정상적으로 20개의 칸을 만들고 100이 오른쪽에 붙어서 출력되는 것을 확인했다.
setfill('=')을 추가해보았다.
띠요옹 정상적으로 공백에 '='가 채워서 출력된다.
혹시 setfill('=') 만으로는 출력을 할 수 없는 것일까?
setfill()이 공백을 채워주지만, 출력할 내용이 없기 때문에 공백을 채워주지 않는 것 같다.
아무 내용 없는 ""을 추가로 출력시켜서 문제를 해결하였다.
이제 아래와 같은 출력을 원한다.
====================
| playerHp: 100 |
| playerAtk: 20 |
====================
아래와 같은 코드를 짜보았다.
이런. 변수를 출력시켰더니 공백 밖에서 출력 되는 것 같다.
setw(20)이 "| playerHp: "에 적용되고 끝나는 것 같다?
좀 불편해보이지만 "| playerHp: " 뒤에 남는 공백만큼 setw(7)을 붙여서 해결할 수 있어보인다.
원하는 대로 출력 되는 것 같다.
이제 이쁘게 만들어 보자.
결과는 만족스럽지만, 변수앞에 일일히 남는 공백을 세어서 setw()를 넣어주어야 하는 번거로움이 있다.
나중에 다른 방법을 찾아보자.
- setf()는 줄마다 써주어야 한다.
- setfill()은 바꿔주지 않는 한 다음 줄에도 적용이 된다.
- std::left도 바꿔주지 않는 한 다음 줄에도 적용이 되는 것 같다.