다음 코드를 고려하십시오 위의 코드를 실행예기치 이제 stringstream 동작
#include <sstream>
#include <iostream>
using namespace std;
int main()
{
stringstream ss;
ss << string("12");
int h;
ss >> h;
cout << h << endl;
ss.str(string("")); // clear the content of ss
ss << string("30");
int m;
ss >> m;
cout << m << endl;
return 0;
}
것은 어떤 임의의 출력 산출 : 다른 시간에서
12
0
을, 다음과 같은 출력이 관찰된다 :
12
4
출력이 간단 할 것으로 예상했습니다.
12
30
예기치 않은 결과가 나타나는 이유는 무엇입니까?
또한 string s
에서 int i
까지 구문 분석하는 가장 좋은 방법은 C++ 11을 지원하지 않아야합니다. int i = atoi(s.c_str())
일까요?
_'Also, 구문 분석하는 가장 좋은 방법은 무엇이겠습니까 ... '_'std :: istringstream'을 사용하십시오. –
스트림을 적절히 삭제하지 않으려면'ss.clear()'를 사용하십시오. – yizzlez