C++ cin>> cin.get() cin.getline()
来源:互联网 发布:excel 设置数据有效性 编辑:程序博客网 时间:2024/06/06 02:30
一、cin>>
cin>>在开头遇到结束符时会忽略,下次遇到空格、换行符和制表符结束输入,并在缓冲区中留下使输入结束的结束符(Enter、Space、Tab),作为下次cin>>开头的忽略。缓冲区有残留数据,读入操作直接从缓冲区中取数据。
注意:cin>>遇到结束符后会停止读入,但是并不会丢弃该结束符,而是下次读入时会跳过结束符。
如
char m,n;
std::cin >> m;
std::cin >>n;
这样看来好像是读取后丢弃了
而
char m,n;
std::cin>>m;
std::cin.get(n);
n将是换行符 这样便好像是留在缓存区,所以是留在缓冲区的,只是下次读入会忽略。
int a,b; cin>>a>>b;
//获取字符串char a[20]; cin>>a;//或string s; cin>>s; //注意遇到空格会终止读取
二、cin.get()
cin.get()获取字符,可读取空格,遇到换行终止读取,但是不会丢弃缓冲区中的换行符。注意读取单个字符时是可以读取到回车符的。自定义结束符时也不会丢弃缓冲区中的结束符。
// 获取单个字符,可以读取换行符ch=cin.get(); 输入a b[Enter],则第一次读到'a',第二次读到空格,第三次读到'b',第四次读到换行enter
// 读取19个字符,a最后一个字符'\0'(字符串结束标志)char a[20]; cin.get(a,20); //20表示接受字符个数,cin.get(数组名,长度,结束符),默认遇到换行符停止。
cin.get(a,20);cin.get(); //由于get遇到换行符终止,但是不会丢弃换行符而是将其留在缓冲流中,这会导致下次get读取时直接终止,读取不到字符。所以使用cin.get()读取单个字符强行将换行符读取清除掉。cin.get(b,20);
三、cin.getline()
cin.getline()读取一行,可读取空格,遇到换行终止读取并将换行符从缓冲区清除掉。
char a[10]; cin.getline(a,5); //5表示接受字符个数如果输入12345[Enter],将会读取到1234,但是如果接下来继续读取将会出错。比如使用ch=cin.get();将会读取不到5。而如果使用cin.get(a,5)则不会出现该情况。
四、string中读取方法
getline():
getline遇到换行符时停止读入,并会将换行符丢弃。
注意在getline前面使用cin时,cin会留下结束符,如果是回车(换行)符,getline将不会读取到数据。可以使用cin.ignore();忽略回车符。
cin>>a;cin.ignore();getline(cin,str);
1.cin.getline()读取的字符串是数组,getline()是string类型。
2.cin.getline()会在字符数组结尾添加’\0’,getline()不一定,跟编译器有关,不过新的C++标准C++11要求以’\0’结尾。
#include<string> string str; getline(cin,str);
gets():
#include<string> char a[10][20]; for(int i=0; i<10; i++) { gets(a[i]); }
getchar():
#include<string> char ch; ch=getchar(); ////不能写成getchar(ch);
- cin cin.get cin.getline
- cin cin.get cin.getline
- cin,cin.get,cin.getline.
- cin cin.get cin.getline
- cin,cin.get(),cin.getline()
- cin、cin.get()、getline()
- cin、cin.get()、getline()
- cin.get(),cin.getline()
- C++: cin.get()与cin.getline()
- cin、cin.get()、cin.getline()、getline()、gets()
- cin、cin.get()、cin.getline()、getline()、gets()
- cin、cin.get()、cin.getline()、getline()、gets()
- cin,cin.get(),cin.getline(),getline(),fget()
- cin、cin.get()、cin.getline()、getline()
- 区分cin,cin.get(),cin.getline(),getline
- cin cin.get cin.getline getline getchar
- cin.get 和 cin.getline
- cin.get()与cin.getline()
- KD-tree学习笔记
- 【Android】使用Google Play应用商店
- 移动Web开发 小提醒
- 朴素贝叶斯分类器简单实现文本情感分析
- 关于幸存者偏差
- C++ cin>> cin.get() cin.getline()
- C
- 系统分配内存地址:局部变量和全局变量
- 增强学习、增量学习、迁移学习——概念性认知
- Java 读取 Excel(xls、xlsx格式)
- jqueryvalidate 只输出第一个错误
- 用expdp远程导出dmp文件并impbp导入数据库
- python中的OpenCV函数 waitkey
- 100行代码实现tableViewCell折叠