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