文章目录
读入字节流的方法1:
#include<iostream>
#include<vector>
#include<sstream>
using namespace std;
vector<int> op_data;
string input;
int main()
{
cin >> input;
stringstream ss(input); //ss 是一个用于处理 input 字符串的 stringstream 对象。
string token;
//getline是 stringstream 类的成员函数,用于从 stringstream 对象 ss 中读取数据
//并将读取的内容存储到字符串变量 token 中。它的作用是按照指定的分隔符
//将输入流 ss 中的内容逐行读取并存储到 token 中。
while(getline(ss,token,','))
{
int num;
istringstream(token) >> num;
op_data.push_back(num);
}
for(int i = 0; i < op_data.size(); i ++) cout << op_data[i] << " ";
return 0;
}
读入字节流的方法2:
解释:
1、getline(cin, input) 是 C++ 标准库中的一个函数,用于从标准输入流 cin 中读取一行文本,并将其存储到字符串变量 input 中。遇到换行符 \n 或文件结束符。读取所有内容但不包括换行符本身。读取完成后,结果将存储在字符串变量 input 中。
2、input.substr(i, p - i):用于从input字符串中提取一段子串,i和p-i表示开始和结束的位置(但不包括结束位置)真正的起始位置:i 真正的结束位置是: i + p - i - 1
#include<iostream>
#include<vector>
#include<sstream>
using namespace std;
vector<int> op_data;
string input;
int main()
{
getline(cin, input);
int p = 0;
for(int i= 0; i < input.size(); i ++)
{
p = i;
while(input[p] != ',' && p < input.size())
{
p ++;
}
string tmp = input.substr(i, p - i);
op_data.push_back(stoi(tmp));
i = p;
}
for(int i = 0; i < op_data.size(); i ++) cout << op_data[i] << " ";
return 0;
}