최근에 명시 적으로 변경할 때까지 모든 삽입에 대해 문자열 스트림에 stringstream
잘못 std::setw()
영향을 줄 것이라고 가정했기 때문에 최근에 문제를 일으키는 데 문제가있었습니다 . 그러나 삽입 후에는 항상 설정 해제됩니다.
// With timestruct with value of 'Oct 7 9:04 AM'
std::stringstream ss;
ss.fill('0'); ss.setf(ios::right, ios::adjustfield);
ss << setw(2) << timestruct.tm_mday;
ss << timestruct.tm_hour;
ss << timestruct.tm_min;
std::string filingTime = ss.str(); // BAD: '0794'
그래서 많은 질문이 있습니다.
- 왜
setw()
이런 식입니까? - 다른 조작자가 이런 식으로 있습니까?
std::ios_base::width()
과 (와)의 동작에 차이가std::setw()
있습니까?- 마지막으로이 동작을 명확하게 문서화 한 온라인 참조가 있습니까? 내 공급 업체 설명서 (MS Visual Studio 2005)에이를 명확하게 표시하지 않는 것 같습니다.