std::getline从输入流中读取多行字符串
来源:互联网 发布:如何下载excel2010软件 编辑:程序博客网 时间:2024/05/17 09:23
cin>>s 输入不包含空格、tab、换行符(敲击Enter就是换行)的字符串。
3 (3和2之间用Enter间隔)2aba c
要输入上面的,写下面的代码:
int n,m;string s1,s2,s3;cin>>a>>b;cin>>s1>>s2>>s3;
int n, m;cin >> n >> m;vector<string> sv(3);for (auto &x : sv){cin >> x;}这两种写法都不能输入字符串“a c” ,因为cin只能输入没有空格的字符串,自动忽略Enter(所以 2 space 3 和 2 Enter 3 这两种都能输入n=2和m=3)。
std::getline(cin,s)可以读取包含空格的字符串,也读入换行符,但遇到换行符会终止读入,并且不把换行符存入s。如果换行符在开头呢? 键入3后按Enter,getline会读入这个Enter,
终止读取,s为一个空字符串。所以下面的写法会获得三个字符串,第一个sv[0]为空串。
int n, m;cin >> n >> m;vector<string> sv(3);for (auto &x : sv){getline(cin, x);}解决办法是 加一行 getline(cin,string()),把这个Enter用一个临时对象来处理,让它成为空串。
int n, m;cin >> n >> m;vector<string> sv(3);getline(cin, string());for (auto &x : sv){getline(cin, x);}ps: while(getline(cin,s)
{//处理语句} 终止while的键盘输入在windows下是ctrl+z,unix 下为ctrl+d
现在做一个推测,不再是标准输入cin,是其他输入流,如文件流,从文件流中读取行到一个vector<string>中,行与行之间的分隔符就是'\n' 。
阅读全文
0 0
- std::getline从输入流中读取多行字符串
- 如何从输入流中读取数据到字符串中
- 【C++】从标准输入中读取字符串
- C++从txt文本中输入和读取字符串
- 字符串输入 getline
- 从标准输入流中读取数据
- c++中输入字符串--cin.get和cin.getline用法
- C++ 使用std::getline()拆分字符串
- C 从标准输入读取字符串.
- C++从标准输入读取一行字符串
- 使用getline函数从文本中一行一行的读字符串
- C++中std::getline()函数的用法
- 从文件中读取字符串
- 输入多组字符串 方法getline()与vector
- 输入多组字符串 方法getline()与vector
- 使用字符串输入流从字符串中提取数据
- c++ getline正确读取多行内容
- SAXReader从输入流中读取XML文件
- iOS学习笔记-113.多线程12——NSOperation基础
- Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)
- python3对压缩文件处理
- 【CUGBACM15级BC第31场 A】hdu 5178 pairs
- 江中游A星算法 第1课 预估移动消耗计算法则
- std::getline从输入流中读取多行字符串
- HDU
- collect2.exe: error
- 推荐系统(1)——推荐系统概述
- HDU 1010Tempter of the Bone(dfs+剪枝)
- Game Prediction POJ
- codeforce 851 B Arpa and an exam about geometry(思路)
- 初识rabbitmq
- Junit4测试Service中的方法