cpp中操作
间隔以" "类型的:
利用<sstream>库里面的istringstream iss()函数
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int main()
{
string line;
getline(cin, line);
istringstream iss(line);
int num;
vector<int> vec;
while (iss >> num)
{
vec.push_back(num);
}
for (int i = 0; i < vec.size(); i++)
{
cout << vec[i] << " ";
}
}
间隔以","类型的
添加<algorithm>库,使用replace函数把","替换成" ",其他的不变
#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm> // 为了使用 std::replace
using namespace std;
int main()
{
string line;
getline(cin, line);
replace(line.begin(), line.end(), ',', ' ');
istringstream iss(line);
int num;
vector<int> vec;
while (iss >> num)
{
vec.push_back(num);
}
for (int i = 0; i < vec.size(); i++)
{
cout << vec[i] << " ";
}
cout << endl;
return 0;
}
示例,分别接受两行以,间隔的输入放进vector
iss记得要分别命名
#include <iostream>
#include <vector>
#include <sstream>
#include <algorithm> // 为了使用 std::replace
using namespace std;
int main()
{
string line1;
getline(cin, line1);
replace(line1.begin(), line1.end(), ',', ' ');
istringstream iss1(line1);
int num1;
vector<int> inorder;
while (iss1 >> num1)
{
inorder.push_back(num1);
}
string line2;
getline(cin, line2);
replace(line2.begin(), line2.end(), ',', ' ');
istringstream iss2(line2);
int num2;
vector<int> postorder;
while (iss2 >> num2)
{
postorder.push_back(num2);
}
}