面向行的输入 getline()和get()的使用
来源:互联网 发布:微信加好友软件 编辑:程序博客网 时间:2024/04/28 16:47
1.getline()的使用:
char name[20]; cin >> name;
如果用这种方式输入,当碰到输入诸如Dirk Hamernose这样分开的名字时,就会出现问题。只有使用
char name[20]; cin.getline(name,20);
这种方法可以解决输入复杂名字的情况。
getline()函数每次读取一行,它通过换行符来确定行尾,但不保存换行符。
string list[5];for(int i = 0; i < 5; i++) getline(cin, list[i]);
2.get()的使用:
char name[20],dessert[20];cin.get(name,20);cin.get(dessert,20);
这种情况,在输入name的时候会是正常的,但是由于get()函数保存换行符,所以下次再使用get()函数时,碰到的是换行符,会认为已到达行尾,而没有发现任何可读取的内容,所以会出问题,正确的解决方法如下:
char name[20], dessert[20];cin.get(name,20);cin.get();cin.get(dessert,20);
通过加入cin.get();这句,cin.get();可以读取下一个字符,把换行符读取了,就可以解决该问题。还有一种方法就是上述方法的简写:
char name[20],dessert[20];cin.get(name,20).get();cin.get(dessert,20);
get()函数的妙用:
int year;char address[80];cout << "input the year: ";cin >> year;cout << "input the address: ";cin.getline(address,80);cout << "year is " << year << " and address is " << address << endl;
这种情况下,就会出问题,在输入year之后,然后调用getline()看到换行符后,讲认为读取的是一个空行,就把空字符串赋给address,就显示不正常了,正确解决方法如下:
int year;char address[80];cout << "input the year: ";cin >> year;cin.get();cout << "input the address: ";cin.getline(address,80);cout << "year is " << year << " and address is " << address << endl;
或者
int year;char address[80];cout << "input the year: ";(cin >> year).get();cout << "input the address: ";cin.getline(address,80);cout << "year is " << year << " and address is " << address << endl;
0 0
- 面向行的输入 getline()和get()的使用
- 面向行的输入:getline()和get()
- C++中面向行输出get()和getline()的区别
- C++字符串的输入函数之get()和getline()
- (VS2012)C++行输入函数的使用(scanf_s,cin.getline,cin.get)
- 各种输入方式的细节cin.get/cin.getline/getline...
- get和getLine的区别
- getline()和get()的区别
- C++中get()和getline()的使用区别
- C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))
- cin.get和cin.getline的区别?
- cin.get和cin.getline的区别?
- cin.get和cin.getline的区别
- cin.getline()和cin.get() 的区别
- cin.getline()和cin.get()的区别
- cin.get 和 cin.getline 的区别
- c++getline和get的区别
- cin gets getline cin.get等输入的区别
- Eclipse 不能自动创建Activity 和layout文件 解决办法
- 史上最全的iOS面试题及答案
- 第三周项目1-1掌握有对象的结构程序
- 第二周实验作业之三、四
- GIS是怎样建成的之三:图形,图形,我们去哪里呀(区域树部分)
- 面向行的输入 getline()和get()的使用
- hibernate缓存:一级缓存和二级缓存
- 【转载】越洋巨鸢---苏联图-114远程客机
- 将博客搬至CSDN
- Ado.Net Entities Framework实例
- Win32 SDK显示图像(GDI+)
- HDU 4741 Save Labman No.004 (异面直线距离&直线与平面的交点)
- Cocos2d-x适配解决方案及原理分析
- 不要这样说啊