C++ Primer Plus笔记

每次读取一行字符串的输入:

1.getline()

例:将姓名读入到一个包含20个元素的name数组中:

cin.getline(name,20);

该语句通过换行符来确定结尾但并不保存换行符,存储时用空字符代替换行符。

2.get()

调用方式与getline()类似,但会将换行符留在输入队列中,使得连续调用两次时,第二次调用看到的第一个字符便是换行符从而无法读取真正内容,解决方法:
1)使用不带任何参数的cin.get():

cin.get(name,size);

cin.get();

cin.get(deseert,size);

(2)将两个类成员函数拼接起来:

cin.get(name,size).get();

cin.get(deseert,size);

3.以上两种针对数组,在字符串中的表示方法如下:

getline(cin,string);

cout显示布尔型

cout.setf(ios_base::boolalpha);

老式c++使用:

cout.setf(ios:boolalpha);

strcmp()用法

1.str1和str2相等,则下面表达式为true:

strcmp(str1,str2)==0

2.若str1和str2不相等,则下面两个表达式均为true:

strcmp(str1,str2)!==0
strcmp(str1,str2)

3.str1在str2前面,则下面表达式为true:

strcmp(str1,str2) < 0

4.str1在str2后面,则下面表达式为true:

strcmp(str1,str2) > 0

关于cin.get的一点补充

在第9章的学习中看到这样的一段代码有些不理解,经查阅资料之后进行一些补充,代码如下:

cin.get(next);
while (next != '\n')
		cin.get(next);

在该代码之前还有一个cin.get(input,ArSize)操作,以下是关于该代码段的理解:

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 ,cin.get(input,ArSize)将读取输入直到到达行尾或读取了ArSize-1个字符为止,余下的将留在输入队列中。
cin.get(字符变量名)可以用来接收字符,即cin.get(next)用来读取行输入后的字符,判断是否输入换行符
该段代码先读一个字符next,然后,检查它是不是回车,如果不是,说明有多余的数据在缓存中,将其读出来(还要读剩余所有不想要的,所以用while循环,直到读到回车),但是不做任何处理,这个命令就是清除缓存中的数据,以保证下次读取的时候,缓存是空的,只需要读键盘输入的内容。
主要目的是:控制输入是程序设计者想要的内容,将多余的信息忽略掉。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值