2011-03-05 5 views
11

저는 C++로 작업하고 있습니다. 나는 그 안에 3 개의 대시가있을 수도 있고 없을 수도있는 10 자리 문자열 (문자 배열)을 받았습니다 (최대 13 자까지 가능). 스트림을 오른쪽으로 정당화하기 위해 내장 된 방법이 있습니까?C++에서 출력 스트림의 오른쪽 정렬

스트림 오른쪽 정렬로 인쇄하는 방법은 무엇입니까? 이 기능을 내장하는 방법이 있습니까? 또는 문자 배열의 시작 부분에 3 칸을 채워야합니까?

나는 ostream을 다루고있어 구체적인지 확실하지 않습니다.

답변

27

std::setwstd::right과 함께 사용해야합니다.

#include <iostream> 
#include <iomanip> 

int main(void) 
{ 
    std::cout << std::right << std::setw(13) << "foobar" << std::endl; 
    return 0; 
} 
+3

참고 : 중요 *입니다 * 당신이하는'<< 바로 << setw (13)'형식을 지정하기 전에. 나는. 'cout << "<<"<< "파일"<< endl;'을 추가했다면'cout << right << setw (13) << ""추가 할 수 없습니다. . 시작에서. 적어도 맥 오에스 X에서는 번호 바로 앞에서해야한다. – uliwitness

6

예. setw()을 사용하여 너비를 설정할 수 있습니다. 기본 정렬은 오른쪽 정렬이고 기본 채우기는 공백이므로 왼쪽에 공백이 추가됩니다.

stream << setw(13) << yourString 

참조 : setw(). <iomanip>을 포함해야합니다.

4

페이지의 "setw"좋아하는 C에서 "오른쪽"++ 자세한 내용은 (iostream) 참조 :

cout << setw(13) << right << your_string;