c++ 문자열을 숫자로 변환하기(stringstream)
728x90
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
stringstream ss;
double number1 = 0.0;
ss << "1.2,2.6-3.8!4.7=8.9";
cout << "== string to double == " << endl;
while (!ss.eof())
{
ss >> number1;
ss.ignore();
cout << number1 << ", ";
}
ss.clear();
ss.str("");
ss << "1," << "2" << 3 << " " << 4;
int number2 = 0;
cout << endl << "== string to int ==" << endl;
while (!ss.eof())
{
ss >> number2;
ss.ignore();
cout << number2 << ", ";
}
return 0;
}
- stringstream을 사용하기 위해 include 합니다.
- stringstream 변수를 선언합니다.
- stringstream 변수에 실수와 특수문자로 이루어진 문자열을 추가합니다.
- stringstream을 다 읽지 않았으면 반복되는 while 문입니다.
- ss변수에서 숫자를 읽어 실수형 변수 number1에 할당합니다.
- while문에서 ss는 처음 데이터를 읽고 다시 처음으로 돌아가 데이터를 읽기 때문에 중간에 ignore를 호출하여 다음데이터를 읽을 수 있도록 합니다. ignore를 호출하지 않는다면 첫 데이터를 계속 읽기 때문에 무한루프에 빠집니다.
- clear함수로 현재 상태를 정리합니다.
728x90
'C++ > c++ - 알아두면 좋은 예제200' 카테고리의 다른 글
정수와 문자의 최대/최소값 알아내기(min, max) (0) | 2020.11.15 |
---|---|
c++ 문자열을 정수로 변환하기(stoi) (0) | 2020.10.30 |
c++ 문자열 일부 교체하기(replace) (0) | 2020.10.30 |
c++ 문자열에서 특정 문자만 제거하기 (0) | 2020.10.30 |
c++ 문자열 이동하기(move) (0) | 2020.10.30 |
댓글
이 글 공유하기
다른 글
-
정수와 문자의 최대/최소값 알아내기(min, max)
정수와 문자의 최대/최소값 알아내기(min, max)
2020.11.15 -
c++ 문자열을 정수로 변환하기(stoi)
c++ 문자열을 정수로 변환하기(stoi)
2020.10.30 -
c++ 문자열 일부 교체하기(replace)
c++ 문자열 일부 교체하기(replace)
2020.10.30 -
c++ 문자열에서 특정 문자만 제거하기
c++ 문자열에서 특정 문자만 제거하기
2020.10.30