トップページに戻る
次の競技プログラミングのテンプレートへ
前の競技プログラミングのテンプレートへ
002 競技プログラミングのテンプレート C++
数値の入力
数値の空白区切り(空白数は固定)の入力
数値の空白区切り(空白数は可変)の入力
文字列の入力
に対応した競技プログラミングのC++のテンプレートです。
C++のソース
#include <iostream>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <vector>
std::vector<std::string> GetInputValues();
std::string InputPattern = "Input1";
std::vector<std::string> GetInputValues()
{
std::vector<std::string> InputValuesVect;
if (InputPattern == "Input1") {
InputValuesVect.push_back("9999"); //数値
InputValuesVect.push_back("123 456"); //数値の空白区切り(空白数は固定)
InputValuesVect.push_back("1 2 3 4 5 6"); //数値の空白区切り(空白数は可変)
InputValuesVect.push_back("StrVal1"); //文字列
}
else { //実際の入力
while (true) {
std::string wkStr;
std::getline(std::cin,wkStr);
if(std::cin.eof()) break;
InputValuesVect.push_back(wkStr.c_str());
}
}
return InputValuesVect;
}
int main()
{
std::vector<std::string> InputVect = GetInputValues();
int A=atoi(InputVect.at(0).c_str());
int B,C;
int SpaceInd = InputVect.at(1).find_first_of(" ");
std::istringstream iss1(InputVect.at(1).substr(0,SpaceInd));
iss1 >> B;
std::istringstream iss2(InputVect.at(1).substr(SpaceInd+1));
iss2 >> C;
std::vector<int> NumVect;
std::istringstream iss3(InputVect.at(2));
while(iss3.eof() == false){
int wkInt;
iss3 >> wkInt;
NumVect.push_back(wkInt);
}
std::string S = InputVect.at(3);
printf("1行目の内容 %d\n",A);
printf("2行目の内容 %d %d\n",B,C);
printf("3行目の内容 ");
for(int I=0;I<=(int)NumVect.size()-1;I++){
printf("%d,",NumVect.at(I));
}
puts("");
printf("4行目の内容 %s\n",S.c_str());
}
実行結果
1行目の内容 9999
2行目の内容 123 456
3行目の内容 1,2,3,4,5,6,
4行目の内容 StrVal1
解説