std::string을 가지고 sprintf같은 작업하기?
어떻게 해야하요?
boost의 format라이브러리를 사용하세요
Life rushes on, we are distracted
std::string myString; int i=0;
myString.reserve(128);
sprintf(&myString[0], "%d", i);
std::ostringstream 을 쓰는 것이 해답 아닐까요?
string compose2(int n, const string& cs) { ostringstream ost("error(") ; ost << n << ") " << std_ message[n] << " (user comment: " << cs << ´)´; return ost.str() ; }
std::string myString; int i=0; myString.reserve(128); sprintf(&myString[0], "%d", i);
그리고 ostringstream은 질문을 주신 의도가 printf의 포메팅 스트링을 그대로 사용하고 싶다고 하신 의도와는 좀 안맞는거 같아요.
맨 처음의 질문은 'std::string을 가지고 sprintf같은 작업하기?' 였습니다. 그에 대해서 제가 ostringstream을 제시한 것은 전혀 엉뚱한 답변 같지는 않군요. 또한 boost는 아직 표준이 아닙니다.
제가 질문을 임의로 해석했네요.. 죄송합니당 (떱, 그리고 표준으로 구현해달라고 하신적도 없군요.. ^^)
간단한 코드를 짜 보았습니다.
#include <cstdio> #include <string> int main() { std::string text; text.reserve(128); for (int i=0; i<10;i++) { sprintf(&text[0], "%d", i); printf("%s\n", text.c_str()); } return 0; }
VC++ 6에서는 의도한 대로 결과가 나오는 군요. :D 책을 찾아 봤더니. 이런 코드가 된다는 말은 없네요. :evil: 이런 상황에서는 std::vector<char>를 쓰라고 하네요.
이펙티브 STL 참고 했습니다.
높이 날다 떨어지면. 아푸다 ㅡ,.ㅡ
(떱, 그리고 표준으로 구현해달라고 하신적도 없군요.. ^^)
std::string으로 하는 것을 조건으로 내세운 질문인 만큼 추가적인 라이브러리 설치를 염두에 두고 한 질문 또한 아닌 것 같군요. 지적한 이유는 그 때문입니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
boost의 format라이브러리를 사용하세요
boost의 format라이브러리를 사용하세요
Life rushes on, we are distracted
std::string myString;int i=0;myStr
std::string myString;
int i=0;
myString.reserve(128);
sprintf(&myString[0], "%d", i);
std::ostringstream 을 쓰는 것이 해답 아닐까요?[
std::ostringstream 을 쓰는 것이 해답 아닐까요?
[quote]std::string myString; int i=0
이건 결과가 나오지 않습니다. sprintf가 의도한 데로 동작을 하지 않습니다. (저도 얼핏 될거라 생각해서 vc7.1 g++ 3.4에서 해봤는데 안되는군요)
그리고 ostringstream은 질문을 주신 의도가 printf의 포메팅 스트링을 그대로 사용하고 싶다고 하신 의도와는 좀 안맞는거 같아요.
Life rushes on, we are distracted
맨 처음의 질문은 'std::string을 가지고 sprintf같은 작업
맨 처음의 질문은 'std::string을 가지고 sprintf같은 작업하기?' 였습니다. 그에 대해서 제가 ostringstream을 제시한 것은 전혀 엉뚱한 답변 같지는 않군요. 또한 boost는 아직 표준이 아닙니다.
제가 질문을 임의로 해석했네요.. 죄송합니당 (떱, 그리고 표준으로 구
제가 질문을 임의로 해석했네요.. 죄송합니당 (떱, 그리고 표준으로 구현해달라고 하신적도 없군요.. ^^)
Life rushes on, we are distracted
간단한 코드를 짜 보았습니다.[code:1]#include <
간단한 코드를 짜 보았습니다.
VC++ 6에서는 의도한 대로 결과가 나오는 군요. :D
책을 찾아 봤더니. 이런 코드가 된다는 말은 없네요. :evil:
이런 상황에서는 std::vector<char>를 쓰라고 하네요.
이펙티브 STL 참고 했습니다.
높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ
[quote="yielding"](떱, 그리고 표준으로 구현해달라고 하신
std::string으로 하는 것을 조건으로 내세운 질문인 만큼 추가적인 라이브러리 설치를 염두에 두고 한 질문 또한 아닌 것 같군요. 지적한 이유는 그 때문입니다.
댓글 달기