C++ getline()和get()
来源:互联网 发布:在职软件工程硕士2018 编辑:程序博客网 时间:2024/06/08 16:40
以下是对cin.get()和cin.getline()的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。
cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,比如:
复制代码 代码如下:
#include <iostream>
using std::cin;
using std::cout;
const int SIZE = 15;
int main( ){
cout << "Enter your name:";
char name[SIZE];
cin.get(name,SIZE);
cout << "name:" << name;
cout << "\nEnter your address:";
char address[SIZE];
cin.get(address,SIZE);
cout << "address:" << address;
}
输出:
Enter your name:jimmyi shi
name:jimmyi shi
Enter your address:address:
在这个例子中,cin.get()将输入的名字读取到了name中,并将由Enter生成的换行符'/n'留在了输入队列(即输入缓冲区)中,因此下一次的cin.get()便在缓冲区中发现了'/n'并把它读取了,最后造成第二次的无法对地址的输入并读取。解决之道是在第一次调用完cin.get()以后再调用一次cin.get()把'/n'符给读取了,可以组合式地写为cin.get(name,SIZE).get();。
cin.getline()每次读取一整行并把由Enter键生成的换行符抛弃,如:
复制代码 代码如下:
#include <iostream>
using std::cin;
using std::cout;
const int SIZE = 15;
int main( ){
cout << "Enter your name:";
char name[SIZE];
cin.getline(name,SIZE);
cout << "name:" << name;
cout << "/nEnter your address:";
char address[SIZE];
cin.get(address,SIZE);
cout << "address:" << address;
}
输出:
Enter your name:jimmyi shi
name:jimmyi shi
Enter your address:YN QJ
address:YN QJ
由于由Enter生成的换行符被抛弃了,所以不会影响下一次cin.get()对地址的读取。
如果cin.get()是一个一个字符的读入,但是cin.get()不会忽略任何字符,对于回车符需要单独处理。
两点注意:
(1) 学会区别get()与getline();
(2)换行符号是\n,而不是/n;
0 0
- c++getline和get的区别
- get()和getline()
- get()和getline()函数
- getline()和get()
- get和getline不同点
- C++ getline()和get()
- getline()和get()
- 【C++】cin、cin.get(char)和getline()
- cin.get 和 cin.getline
- get和getLine的区别
- cin.getline()和cin.get()
- get和getline函数差别
- getline()和get()的区别
- C++ cin.getline() , cin.get(), getline()
- C/C++——输入输出字符相关,cin.get()、getchar()和cin.getline()
- C++getline()与get()用法
- C++: cin.get()与cin.getline()
- cin>>和cin.get()和cin.getline()
- 图形渲染CPU重要还是显卡重要?3D渲染、三维建模速度和显卡有关吗?三维制图电脑配置!3D设计用什么显卡
- 在android中采集音频的api是android.media.AudioRecord类
- SpringMVC,Mybatis,FreeMarker连接mycat示例(一)
- itoa、atoi
- 有符号数除以非-2的幂(MagicNumber为负)
- C++ getline()和get()
- 电路设计_红外遥控设计经验
- 利用map容器中统计文件中相同字符串的个数
- 3D图形渲染管线
- 深入理解ButterKnife源码并掌握原理(一)
- 360校招编程题:内存管理
- Python3 获取异常的信息和traceback(实现类似PyErr_Print功能)
- 手机中常用的TELECOM 层的协议
- 关于cmd无法打开mysql服务的解决方法