【C++基础学习】-8.24

C++基础学习

//cin拿空白字符,换行符和结束符作为读入字符结束的标志
//cin优先读取缓存区内容;读取内容首个字符有空白字符的往往跳过(回车换行符和空格字符)空白字符。
//cin读取内容时,第一个为空白字符往往选择跳过;后面出现空白字符往往表示终止
//cin在缓存区里遇到空白字符代表终止(空白字符包括:空格,制表符和回车换行符)
//空白字符≠空字符,空字符是“\0”
//cin在遇到回车换行符时候,cin是不会把回车换行符丢弃的
//cin.get()变体:被调用后可以读取下一个字符,因此可以用来处理换行符,为读取下一行输入做准备 

#include <iostream>

int main()
{
	using namespace std;
	const int ArraySize = 20;
	char name[ArraySize];
	char dessert[ArraySize]; 
	cout << "Enter your name:\n";
	cin.getline(name,ArraySize).getline(dessert,ArraySize);
	//cout << "Enter your favourite dessert\n";
	//cin.get(dessert,ArraySize).get() ;
	cout << "I have some delicious " << dessert << " for you, " << name << ".\n";
	return 0;
}
//读取整体(携带空格的完整输入--->读取一行,及面向行读取而非面向单词读取。)
//cin.getline()与cin.get(storage,size)两个函数都能读取一行的输入,直到达到换行符。size里面有一个'\0',函数最多读取size-1个字符
//getline丢弃换行符,get将换行符保留在输入序列
//getline()函数每次读取一行,通过换行符来确定行尾,但是不保存换行符,相反,在存储字符串时,他用空字符来替换换行符。
//getline函数终止标志:Ⅰ读取指定字符,Ⅱ遇到换行符终止;getline函数捕获计算机输入字符串,丢弃结尾换行符,补充"\0"存储到字符串数组中;Ⅲgetline读取到最后的回车换行符会丢弃回车换行符


//面向行的输入get()
//往往在cin.get(arrayname,arraysize)后面的下一行加上一行cin.get()
//cin.get()往往用来捕获上一个cin.get(name,size)留下的回车换行符。(习惯)
//往往cin.get()书写两行:第二行cin.get()往往用来消耗回车换行符
//!!!cin.get(name,size).get()为什么可以连写???
//因为cin.get(arrayname,size)的返回值是一个cin对象,所以身为cin对象,同时可以继续调用对象内的成员函数
//cin.get(parameter)的返回值是一个cin对象!!!
//同时get是一个成员函数,成员函数需要通过类的对象去调用,所以,cin.get(parameters).get()可以连写

//cin.get()当用来读取空行后,将设置失效位(failbit),这就意味着接下来的输入被阻断,但是仍然可以用cin.clear()来恢复输入
//cin.clear()往往用于恢复输入,不论是由getline还是get设置的失效位 
//cin.getline()看到换行符后,如果是空行,往往将一个空字符赋值给参数地址address。(重点消耗回车换行符)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值