二维动态数组存储多行数据,手动输入Ctrl+Z(Ctrl + D)结束输入
输入不定行整数方法
#include<iostream>
#include<string>
# include<vector>
#include<sstream>
using namespace std;
int main()
{
string str; //接收带空格的字符串
int num; //读入的数
vector<int> v; //一维数组存一行数
vector<vector<int> > nums; //二维数组存多行数
while (getline(cin,str))
{
istringstream iss(str);//从str中读入字符
v.clear();
while (iss >> num)
{
v.push_back(num);
}
nums.push_back(v);
}
for (int i = 0; i < nums.size(); ++i)
{
for (int j = 0; j < nums[i].size(); ++j)
{
cout << nums[i][j] << " ";
}
cout << endl;
}
}
输入不定行字符方法
#include<iostream>
#include<string>
# include<vector>
#include<sstream>
using namespace std;
int main()
{
string str;
string num;
vector<string> v;
vector<vector<string> >strs;
while (getline(cin,str))
{
if (str.size() == 0) break;
istringstream iss(str);
while (iss >> num)
{
v.push_back(num);
}
strs.push_back(v);
v.clear();
}
for (int i = 0; i < strs.size(); ++i)
{
for (int j = 0; j < strs[i].size(); ++j)
{
cout << strs[i][j] << " ";
}
cout << endl;
}
}
读入一行字符(输入一行后按enter结束)
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
do
{
getline(cin, s, '\n');
for (int i = 0; i < s.length(); ++i)
{
cout << s[i] << " ";
}
} while (!s.empty());
}
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。