C++中的getline()
然而有些同学误以为while判断语句的判断对象是line(也就是line是否为空),然后想通过直接回车(即输入一个空的line)跳出循环,却发现怎么也跳不出循环。这是因为你的回车只会终止getline()函数的读入操作。getline()函数终止后又进行while()判断(即判断输入流是否有效,你的输入流当然有效,满足条件),所以又运行getline()函数,导致程序永远跳不出循环。
- void test_input()
- {
- char ch1,ch2[10];
- cout<<"请输入字符串:"<<endl;
- cin.getline(ch2,6);//在不遇到结束符的情况下,最多可接收6-1=5个字符到ch2中
- cin>>ch1;
- cout<<ch2<<endl;
- cout<<ch1<<"\n"<<(int)ch1<<endl;
- }
- 测试:如下图,输入zifuchuan[Enter],长度大于最大长度5,就会导致cin函数错误,其后既没有像cin.get()一样直接从输入缓冲区直接读数据,也没有从键盘输入。所以此处可以注意,考虑在用cin.getline()时,适度设置其最大接受长度大一点。
cin.getline()
此函数会一次读取多个字符(包括空白字符)。它以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止。若不指定结束符,则默认结束符为'\n'。其语法为:
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
- #include "stdafx.h"
- #include<iostream>
- #include <stdio.h>
- #include <string>
- using namespace std;
- int main()
- {
- char a[30];
- cout << "请输入一个字符串:" << endl;
- cin.getline(a, 10);//第10位存放字符串结束符'\0'
- for (int i = 0; i<10; i++)
- cout << "第"<<i+1<<"个值为:"<<a[i] << endl;
- return 0;
- }
输入:1234567890123
输出:1 2 3 4 5 6 7 8 9 _ (第10位存放字符串结束符'\0')
引自https://blog.csdn.net/livecoldsun/article/details/25489429和https://blog.csdn.net/u013660169/article/details/41726973和https://blog.csdn.net/xumengxing/article/details/6664436和https://blog.csdn.net/duan19920101/article/details/50782816
C++中的getline()的更多相关文章
- C/C++中的getline函数总结:
来自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html C/C++中的getline函数总结 getline函数是一个比较 ...
- c++中basic_istream::getline()的返回值何时为真
今天在看primer,17ch中的IO库再探,做课后练习,要求用ifstream.getline(char*, const unsigned, char)读取一个文件,用循环: while(ifs.g ...
- C++中cin.getline与cin.get要注意的地方
cin.getline与cin.get的区别是,cin.getline不会将结束符或者换行符残留在输入缓冲区中.
- string 中的getline
1 getline 读入string库中的字符串 string a; getline(cin,a); 这样的读入要比任何一种读入字符串都有要快 2 char a[N]; cin.getline(a, ...
- C++中的getline
https://www.cnblogs.com/ymd12103410/p/9514896.html#undefined
- C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
1.cin>> 用法1:最基本,也是最常用的用法,输入一个数字: 注意:>> 是会过滤掉不可见的字符(如 空格 回车,TAB 等) cin>>noskipws> ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...
- c++中获取字符cin,getchar,get,getline的区别
http://www.imeee.cn/News/GouWu/20090801/221298.html cin.get()与getchar()函数有什么区别? 详细点..C++中几个输入函数的用法和区 ...
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...
随机推荐
- web自动化测试中接口测试学习笔记
一.web基础 web是实现:客户端浏览器端<—————>服务端 交互的应用: web通常包含两部分:web客户端.web服务端:web客户端技术包含html.javascript.aj ...
- 吴裕雄 oracle 存储过程
- python 2.0 与 python 3.0 区别
区别一: python 2.0 : 源码不规范,重复代码很多 python 3.0 : 源码精简,美观.优雅 区别二: PY2 : 有整型int.长整型long. py3:只有整型 ...
- ABAP 字符串函数
CONCATENATE:合并字符串. CONCATENATE f1 … fn INTO g [SEPARATED BY h]. 1 * CONCATENATE合并字符串 2 DATA: c1(10) ...
- win10自带IE上不了网的解决办法
1.cmd以管理员身份运行powershell. 2.输入以下三条程序. netsh int tcp set heuristics disabled 回车执行后再输入 netsh int tcp se ...
- CRM某些表加入审计
--更新参数文件,设置Audit等级 alter system set audit_trail=db,extended scope=spfile; --更新参数文件,开始Audit alter sys ...
- python 常用模块(一): random , time , sys , os模块部分知识.
1.常用模块:(1)collectiaons模块 (2)与时间相关 time模块 (3)random模块 (4)os模块 (5)sys模块 (6) 序列化模块: json , pickle 2 ...
- 修改Eclipse主题与Eclipse中使用SVN
自从开始IDEA后,很久没用eclipse了,有位老同学问我eclipse中如何使用SVN?我就打开eclipse试试,白光太刺眼了~作为强迫症修改下主题.结果如下: 修改完编辑的背景颜色,并没有很好 ...
- 可上下拖动且有浮沉动画的View
package com.ifenglian.superapp1; import android.animation.Animator;import android.animation.Animator ...
- 第十章 优先级队列 (b4)完全二叉堆:批量建堆