2012-05-14 2 views
0

DWORD에서 onstringstream으로 변환 한 다음 AnsiString으로 변환하는 방법을 알고 싶습니다.문자열 조작이 변환 될 때 문자열 시작 부분에 0이 표시됨

하지만 실제로는 중요하지 않습니다 즉, 변환이 난 그냥 모든 문자열을 만들 수있는 방법을 알고 싶어에서 intstring, 수는 항상 6 자리을 보여 변환 내 번호가에, 57 경우처럼 string이면 000057이됩니다.

감사합니다.

답변

7

사용 io manipulatorssetfillsetw : 그래서

#include <iostream> 
#include <string> 
#include <sstream> 
#include <iomanip> 

int main() 
{ 
    std::ostringstream s; 

    s << std::setfill('0') << std::setw(6) << 154; 

    std::cout << s.str() << "\n"; 

    return 0; 
} 
+0

setfill가의 구성원이 아닌 '표준' –

+0

@GuilhermeGarcia, 예 그렇습니다. 링크 및 다음을 확인하십시오 : http://ideone.com/RSGvj. 당신은'#include ' – hmjd

+0

#include 이 필요합니다. 감사합니다 = D와 btw는 std ::가 필요하지 않습니다. 그냥 할 수 있습니다. << setfill ('0') << setw (6) –

0

, 형식화 된 출력에 대한 질문? 당신이 iostream::width와 'iostream :: 채우기를 사용할 수있는'

// field width 
#include <iostream> 
using namespace std; 

int main() { 
    cout << 100 << endl; 
    cout.width(6); 
    cout.fill('0'); 
    cout << 100 << endl; 
    return 0; 
} 
+0

나는 cout을 사용하지 않고 있지만 어쨌든 감사합니다. hmjd asnwer가 아마도 내 문제를 해결할 것입니다. –

+1

cout을 사용하든 다른 ostream을 사용하든, 여전히 ostream입니다. –