cin详解

cin与hex、oct、dec控制符一起使用,按进制输入

#include <iostream>
using namespace std;

int main()
{
    int temp;
    // 按16进制输入
    // 输入12
    cin >> hex;
    cin >> temp;
    // 按16进制输出
    // cout << hex;

    // 输出18
    cout << temp;
    return 0;
}

使用c风格字符串输入

输入单词

istream还为下列字符指针类型重载了>>运算符:
- signed char *
- char *
- unsigned char *
对于这种类型的参数,抽取运算符将读取输入中的下一个单词,将它放置到指定的地址,并加上一个空值字符,使之成为一个字符串。

#include <iostream>
using namespace std;

int main()
{
    char name[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
    // 输入"qwer",如果输入的长度超过数组的长度和报错。
    cin >> name;
    // 输出"qwer fg"
    for (int i = 0; i < 7; i++)
    {
        cout << name[i];
    }
    cout << endl;
    // 输出"qwer"
    cout << name << endl;
    return 0;
}
输入字符

>>运算符在查看输入流时,他们跳过空白,直到遇到非空白。它读取从非空白字符开始,到与目标类型不匹配的第一个字符之间的全部内容。如果没有这个内容,cin将返回0,这可用于while判断cin输入。

#include <iostream>
using namespace std;

int main()
{
    char name[20];
    int a;
    char c;
    // 输入"stoic 100 blaise"
    cin >> name >> a >> c;
    // 输出b,100被存到a中后,跳过了空白
    cout << c << endl;
    return 0;
}

istream类的一些其他方法:

  • get(char &)和get(void)提供不跳过空白的单字符输入功能。
  • get(char*, int, char)和getline(char*, int, char)读取整行。
//get(char &)的返回值为istream对象的引用,遇到文件结束将返回false
char ch, cl;
cin.get(ch).get(cl);
//get(void)的返回值为int,遇到文件结束将返回EOF
char ch = cin.get();
输入行

istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()。这两个函数都读取一行,直到换行符。然而,随后getline()将丢弃换行符,而get()将换行符保留在输入序列中。这两个方法还可以接受第三个参数,作为分隔符。

char line[50];
// 读取49个字符或换行后结束。
cin.get(line, 50);

使用string输入

// 输入单词
string str;
cin >> str;
// 输入行
getline(cin, str);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值