C++的输入

本文详细介绍了C++中几种常用的输入方法,包括cin.getline(), getline(), cin.get()和gets()等函数的使用方法及注意事项,并提供了cctype函数库中用于判断字符类型的函数介绍。
摘要由CSDN通过智能技术生成

C++ primer plus 读书笔记

C++的输入

1.cin.getline()

头文件:iostream
使用的参数必须是C风格字符串

cin.getline()函数有3个参数
- 第一个参数是读的数据存放位置
- 第二个参数是最多读入的数据量,如果超过这个量则报错退出
- 第三个参数是结束符,默认为回车,如果设置的话,遇到设置的符号之后停止输入,但是剩下的部分会留在输入缓冲中

  • 注意:不保留换行符,并且自动将换行符去掉
#include<iostream>
using namespace std;

char group[20];
cin.getline(group, 20, '#')//这里的#表示以#作为结束符号,默认情况下是回车,若使用特殊的结束符,则结束符后面的字符会留在输入缓冲中被下一个接收语句接收

2.getline()

头文件:string
输入的容器必须是string类型的,不能用C风格字符串(或数组)

  • 第一个参数:cin
  • 第二个参数:输入数据的存放位置,必须为string类型
  • 第三个参数:结束符

  • 注意:不保留换行符,并且将换行符去掉

#include<iostream>
#include<string>
using namespace std;

string group;
getline(cin, group, '#')//这里的#表示以#作为结束符号,默认情况下是回车,若使用特殊的结束符,则结束符后面的字符会留在输入缓冲中被下一个接收语句接收

3.cin.get()

头文件:iostream
- 使用的参数必须是C风格字符串,不能用string与cin.getline()是类似的,但是保留换行符,
- 因此,用完一次cin.get(××××)之后需要再调用一次cin.get()来消除这个换行符,否则这个换行符一直都在,会影响后面内容的输入。

  • cin.get()输入的是字符char而不是字符串,并且具有连续性,因此是用来判断输入流中每个字符特性的函数
//这个例程使用了cctype函数库的函数判断字符类型,用来统计输入的一串内容中字符和数字的个数各有多少
#include<iostream>
using namespace std;

int main()
{
    char ch;
    int alpha=0, num=0;
    cin.get(ch);
    while(ch!='@')
    {
        if(isalpha(ch))
            alpha++;
        else if(isdigit(ch))
            num++;
        cin.get(ch);
    }
    cout<<alpha<<endl<<num;
    return 0;
}

4.gets()

包含在stdio.h中,C语言
输入一行

因此:
读行,使用cin.getline()和string的函数getline()都是可以的!
若要一个一个读,则最好是使用cin.get()一个一个读


5.cctype函数库

判断字符类型的函数:(cctype函数库)
这些都是对字符类型有用的
- isalnum() 判断是否为字符或数字
- isalpha() 判断是否为字符
- isdigit() 判断是否为数字
- islower() 判断是否为小写
- isupper() 判断是否为大写
- isprint() 判断是否为可打印字符
- ispunct() 判断是否为标点符号
- isspace() 判断是否为空格
- isxdigit() 判断是否为16进制数字
- tolower() 转换为小写
- toupper() 转换为大写

6.cin作为while判断语句

  • 当输入为ctrl+D时表示错误,其余基本都是正确的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值