getline()之前存在cin时的使用
2016-02-26 17:21
369 查看
cin.getline()用来读取一行数据,但是当cin.getline()前面进行了cin输入的话,cin.getline()会把进行cin输入时行末丢弃的换行符读入,从而造成cin.getline()第一次获得的数据为一空行,如下所示: int main() { int rep; cin >> rep; for (int i=0; i<rep; i++) { cin.getline(str,25); } } 此时cin.getline()所读入的第一行是空行,并且占据一次读入次数,造成只能再输入rep-1次数据。 解决办法 cin.ignore(); 如下所示: int main() { int rep; cin >> rep; cin.ignore(); for (int i=0; i<rep; i++) { cin.getline(str,25); } } 如此即可忽略掉第一次输入所遗留的换行符,用cin.getline()直接读取下一行输入的数据。 另外,cin.getline(str,length,"读取截止标志")可以用来读取一行数据,并且自动忽略所设置的读取截止标志 (默认是换行符),这一点不同于cin.get().
相关文章推荐
- 【Elasticsearch】深入Elasticsearch集群
- JavaScript之贪吃蛇
- 浅谈Android开发中内存泄露与优化
- 利用Spark Streaming来实现实时的数据管道服务
- iOS开发之微信聊天工具栏的封装
- Html 链接、图像、表格、表单、背景
- Java 多线程:多线程产生的原因
- 百度地图API地理位置和坐标转换
- iOS项目的完整重命名方法图文教程
- Android模糊效果总结
- 【转】Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- angular 的广义回调管理
- 001_Http之客户端-服务端-servlet
- 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
- bzoj 1007 : [HNOI2008]水平可见直线 计算几何
- 关于vba读取excel文件
- Java中String和List的引用
- Sql Server 实现 Mysql Limit 功能
- Java 多线程:volatile 多线程同步关键字
- WS_EX_TOOLWINDOW导致的窗口一直不能在前面