//这个文件是总结acm各种情况的输入,建议记忆
#include "acmcin.h"
using namespace std;

//按照acm的题型分为处理数字型,和处理字符串型
//首先要知道cin只能将空格和table作为分隔符!!!

//处理数字型
//已知长度,且以空格分割
//一般已知长度是指在数据前面输入数据的基本信息
/**************输入*****************/
// 3 4
// 1 2 3
// 4 5 6
// 7 8 9
// 10 11 12
/**********************************/
void shuzi_kongge()
{
int num = 0, len = 0;
cin >> num;
cin >> len;
vector<vector<int>>arr(num, vector<int>(len));
int temp = 0;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < len; j++)
{
cin >> arr[i][j];
/*temp;
arr[i].push_back(temp);*/
}
}

cout << "输入如下" << endl;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < len; j++)
{
cout << arr[i][j] << "\t";
}
cout << endl;
}
}

//已知长度,且以","分割
/**************输入*****************/
// 3
// 1,2,3,3,2
// 4,5,6,1,3
// 7,8,9,13,4
/**********************************/
void shuzi_douhao()
{
/*int num = 0;
cin >> num;
vector<int, vector<int>>arr(num);
string cur
while()

cout << "输入如下" << endl;*/
int n;
cin >> n;
//vector<vector<int>> vec(n, vector<int>(5));
vector<vector<int>> vec(n);
for (int i = 0; i < n; ++i)
{//注意这里一定要有i控制,用while容易一直输入导致错误
string s;
cin >> s;
replace(s.begin(), s.end(), ',', ' ');

/*cout << "测试" << endl;
cout <<"长度:" << s.size()<<" " << s << endl;*/

istringstream is(s);
string tmp;

//事先知道数组多长可以用for
//for (int j = 0; j < 5; ++j)
//{//内层循环也很重要
// is >> tmp;
// vec[i][j] = stoi(tmp);
//}

//事先不知道数组多长可以用while
while (is >> tmp)
{
vec[i].push_back(stoi(tmp));
//cout << tmp << " " << endl;
}
}

//输出显示
for (int i = 0; i < vec.size(); i++)
{
for (int j = 0; j < vec[0].size(); j++)
{
cout << "\t" << vec[i][j];
}
cout << endl;
}

//return 0;
}

/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/
/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/
/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/

//未知长度,且以空格分割 //这个暂时有问题
/**************输入*****************/
// 1 2 3 3 2
// 4 5 6 1 3
// 7 8 9 13 4
/**********************************/

//这个由于未知长度,没法判断输入结束,需要知道其他更多的信息
void shuzi_kongge_weizhi()
{
vector<int>vec;
//vector<vector<int>>vec;
string s;
int num = 0, len = 0;
int i = 0;
bool flag = true; //记录一行的个数;

while (cin >> num)
{
vec.push_back(num);
if (flag)len++;

if (getchar() == '\n')
{
if (flag)
flag = false;

continue;
}
}

//输出显示
for (int i = 0; i < vec.size(); i++)
{
cout << "\t" << vec[i];
if ((i + 1) % len == 0)
cout << endl;
}
}

//未知长度,但是用","分割
/**************输入*****************/
// 1, 2, 3, 3, 2
// 4, 5, 6, 1, 3
// 7, 8, 9, 13, 4
/**********************************/
void shuzi_douhao_weizhi()
{
string s;
vector<int>vec;
while (cin >> s)
{
replace(s.begin(), s.end(), ',', ' ');

istringstream is(s);
int temp = 0;
string cur;
cout << "转化结果" << endl;
while (is >> cur)
{
vec.push_back(stoi(cur));
cout << "\t" << stoi(cur);
}
cout << endl;
}
}
/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/
/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/
/*******************处理未知长度的输入应该很少,最起码也得有一个结束标志位**********************/

//处理字符串

//以空格分割
/*********************************输入**************************************/
/*
good good study day day up
*/
/*********************************输入**************************************/

void str_kongge()
{
vector<string>str;
string s;
while (cin >> s)
{
str.push_back(s);
if (getchar() == '\n')
{
s.clear();
break;
}
}
//输出结果
cout << "输出展示" << endl;
for (auto st : str)
{
cout << st << " ";
}
cout << endl;
}

//用","分割
/*********************************输入**************************************/
/*
good,good,study,day,day,up
*/
/*********************************输入**************************************/
void str_douhao()
{
vector<string>str;
string s;
//使用getline函数

//while (getline(cin, s))
//{
// cout <<"输入展示:" << s << endl;
// stringstream input(s);
//
// string s1;
// while (getline(input, s1, ','))
// {
// str.push_back(s1);
// /*if (getchar() == '\n')
// break;*/
// s1.clear();
// }
// //输出结果
// cout << "输出展示" << endl;
// for (auto st : str)
// {
// cout << st << " ";
// }
// cout << endl;
//}

//不使用getline函数
cin >> s;
replace(s.begin(),s.end(), ',', ' ');
string temp;
istringstream is(s);
while (is>>temp)
{
str.push_back(temp);
}

//输出结果
cout << "输出展示" << endl;
for (auto st : str)
{
cout << st << " ";
}
cout << endl;

}