문제

도움이되는 답변을 얻은 후 여기, 나는 또 다른 문제가 발생했습니다. 열에 둘 이상의 문자열을 표시하고 싶습니다.

Come here! where?             not here!

그러나 대신 얻습니다

Come here!                     where? not here!

코드를 사용할 때

cout << left << setw(30) << "Come here!" << " where? " << setw(20) << "not here!" << endl;

나는 두 열의 너비에 두 줄의 두 줄을 포함 할 수 있다고 확신했지만, 열의 너비를 얼마나 크게 설정하더라도 오류는 여전히 존재합니다.

도움이 되었습니까?

해결책

언급 한 바와 같이 setw() 다음 입력에만 적용되며 두 입력에 적용하려고합니다.

문자 그대로 상수 대신 변수를 사용할 수있는 기회를 제공하는 다른 제안에 대한 대안 :

#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;

int main()
{
    stringstream ss;
    ss << "Come here!" << " where?";
    cout << left << setw(30) << ss.str() << setw(20) << "not here!" << endl;
    return 0;
}

다른 팁

각 열의 내용을 여러 연속 문자열 대신 단일 문자열로 인쇄해야합니다. setw() 다음 문자열을 인쇄 할 형식 만 형식화합니다. 따라서 인쇄하기 전에 줄을 연결해야합니다. string::append() 또는 +:

cout << left << setw(30) << (string("Come here!") + " where? ") << setw(20) << "not here!" << endl;

setw 다음 문자열 만 포함하므로 연결해야합니다.

cout << left << setw(30) << (string("Come here!") + string(" where? ")) << setw(20) << "not here!" << endl;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top