C++先读入整数,再读入带空格字符串
2018-01-24 10:06
274 查看
先用cin读入整数,再用getline读入带空格长度未知的字符串时,字符串无法读入。
解决方法:加入cin.ignore();
原因:当使用 cin 读取了一个整数后,会在输入缓冲区中留下一个换行符,接下来在调用两个参数的 getline() 读取时,遇到上次 cin 留下来的换行符,即停止读取,因此下面的程序中,无论输入什么内容,调用 getline() 后,字符串变量的值都为空。
参考链接:https://www.techforgeek.info/trap_of_mix_use_cin_and_getline.html
解决方法:加入cin.ignore();
int main() { int n, m; cin >> n >> m; cin.ignore(); string t; getline(cin, t); return 0; }
原因:当使用 cin 读取了一个整数后,会在输入缓冲区中留下一个换行符,接下来在调用两个参数的 getline() 读取时,遇到上次 cin 留下来的换行符,即停止读取,因此下面的程序中,无论输入什么内容,调用 getline() 后,字符串变量的值都为空。
参考链接:https://www.techforgeek.info/trap_of_mix_use_cin_and_getline.html
相关文章推荐
- C++读取以空格作为数据区分标记,以回车为行标记的txt文件到一个整数数组(字符串妙用)
- C++ 读入整行带空格的字符串,并将字符串按照特定符号划分成多个子串
- C++从输入流中读取字符串并根据空格拆成多个整数
- 读入一行字符(包括空格)做为一个字符串的两个方法 ,C/C++
- C++将字符串按空格分开并分别保存
- int型整数转换成字符串的C++实现
- c++用递归法将一个整数n转换成字符串
- C++去除字符串首尾和串中多余空格
- C++字符串转整数详解(安全vs不安全)
- C++中去掉string字符串中的空格和tab
- C++中空格的读入与输出
- 一个整数转换成字符串(C/C++自己写的算法)
- C/C++面试之算法系列--从“整数转换成字符串”看算法的联想
- C++ 字符串读入问题
- C++ - 将长型整数转换为字符串
- C\C++字符串转化成整数
- 【整理】C/C++中字符串与整数之间的相互转换
- c/c++字符串的逆序,混合长度,祛除空格等处理
- c++字符串读入写入小结
- c++中输入带有空格的字符串