ABC050_A

文字列を分割して数値にする問題

C++におけるsplit関数の実装
qiita.com

#include <iostream>
#include <cstdio>
#include <string>
#include <sstream>
#include <vector>

using namespace std;

int stoi(std::string str){
  int ret;
  std::stringstream ss;
  ss<<str;
  ss>>ret;
  return ret;
}

vector<string> split(const string &s, char delim) {
  /*
    文字列分割してvector<string>を返す
   */
    vector<string> elems;
    stringstream ss(s);
    string item;
    while (getline(ss, item, delim)) {
    if (!item.empty()) {
            elems.push_back(item);
        }
    }
    return elems;
}


int main()
{
  string Str;
  vector<string> ans;
  int a,b;
  getline(cin, Str);//空白ごと1行入力
  ans = split(Str,' ');
  a = stoi(ans[0]);
  b = stoi(ans[2]);
  if(ans[1]=="+")
    printf("%d\n",a+b);
  else
    printf("%d\n",a-b);
  return 0;
}


空白を含めて一行入力したい場合は

getline(cin,str);