cin、cin.getline()、getline()的用法

cin

遇到空格、TAB、回车会结束输入 

#include <iostream>
using namespace std;
int main (){
    string s;
    cin >> s;
    cout << s << endl;
}

例如:

        输入:abcd efg

        输出:abcd 

cin.getline() 

接收一个字符串,可以接收空格并输出

cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)


当第三个参数省略时,系统默认为'\0'

#include <iostream>
using namespace std;
int main(){
	char a[20];
	cin.getline(a,20,'O');
	cout << a;
}

例如:

        cin.getline(a,4);

        当输入abcdOabcd时,输出abc(最后一位是 /0)


        cin.getline(a,20,'O');

        当输入abcdOabcd时,输出abcd(因为在'O'处截断)

getline()

接收一个字符串,可以接收空格并输出,需包含“#include<string>”

#include<iostream>
#include<string>
using namespace std;
int main (){
    string str;
    getline(cin,str);
    cout<<str<<endl;
}

例如:

        输入: abcd efg

        输出:abcd efg

注意的问题:

1.cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

2.同代码内出现 cin>>和getline() 两种用法时,需要注意的是,在cin>>输入流完成之后、getline()之前,需要通过以下:

getline(cin,str);

将 “回车符”作为的输入流cin 以清除缓存(cin>>完成后按下回车,此时回车符作为cin的输入流),否则在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。

int main(){
	int age;
	
	cout << "Please enter an integer value as your age: ";
	cin >> age;
	cout << "Your ager is: " << age << ".\n";
	
	string mystr;
	cout << "What's your name? " << endl;

	//以下这一段
	getline(cin, mystr);

	getline(cin, mystr);
	cout << "Hello," << mystr << ".\n";
	return 0;
}

添加这段代码,运行结果:

Please enter an integer value as your age: 21
Your ager is: 21.
What's your name?
wjl
Hello,wjl.

不添加这段代码,运行结果:

Please enter an integer value as your age: 21
Your ager is: 21.
What's your name?
Hello,.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值