처음에는 A , B, C, D 를 string 값으로 입력 받아서 문자열을 합하고 문자열을 int형으로 변환하여 출력하는 방식을 생각했다. 그래서 문자열을 합칠 수 있도록 <sstream> 을 이용하는 방법을 택하였다.
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string A, B, C, D;
string ab;
string cd;
int sum1;
int sum2;
stringstream ss;
stringstream SS;
cin >> A >> B >> C >> D;
/*ab = A + B;
cd = C + D;*/
ss <<A<<B;
ss >> sum1;
SS <<C<<D;
SS >> sum2;
cout << sum1 + sum2;
return 0;
}
하지만 이 방법은 수가 커질 수록 int형에 저장하지 못해서 숫자가 크면 오류가 떴다. 그래서 다른 방법을 찾아보던 중
stoll 함수를 이용하는 방법을 알아냈다.
c++ 에서 string 타입의 문자열을 숫자로 바꾸는 함수이다.
stoi | string to int |
stof | string to float |
stol | string to long |
stod | string to double |
stoll | string to long long |
여기서 int 형으로 받기에는 범위를 넘어가면 오류가 생기므로 stoll 함수를 이용하는 방법을 선택했다.
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string A, B, C, D;
string ab;
string cd;
cin >> A >> B >> C >> D;
/*ab = A + B;
cd = C + D;*/
string SUM1 = A + B;
string SUM2= C + D;
long long SUM = stoll(SUM1) + stoll(SUM2);
cout << SUM;
return 0;
}
'코드 공부' 카테고리의 다른 글
C++ - 10주차 (0) | 2023.05.15 |
---|---|
백준 2751번 - c++ (0) | 2023.05.09 |
백준 17299번 c++ (0) | 2023.04.06 |
백준 17298번 c++ (0) | 2023.04.04 |
백준 15552번 - C++ (0) | 2023.04.01 |