CIN和COUT原理和常用用法

1. 原理:

    #include <iostream>

    其中,i/o表示输入输出,stream表示流。

    cin表示输入流,其操作符 >> 意思为提取,其操作过程为【键盘->"hello"->cin输入流-> ">>"提取->变量】

    在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存数据。执行cin输入时,系统会根据变量的类型,从输入流中提取相应长度的字节,并赋给变量。一般情况下,用>>操作符连续输入时,是跳过空格和回车的。且只有收到回车键时,缓冲区中的输入流才会被按顺序全部提取。如果提取之后发现数据不够,则继续输入;否则,剩余的数据会被存入缓冲区;下次输入时,如果缓冲区还有数据,则直接使用缓冲区数据,不会给用户在界面显示光标提醒其继续输入。

    cout表示输出流,其操作符 <<表示插入,其操作过程为【显示器<-cout输出流<-"<<"插入<-“hello”程序】。同理,只有当收到换行符时(或缓冲区满),才会将缓冲区数据一并清空并在显示设备输出。

 

2. 输入函数

2.1 cin (连续输入时,留下最后一个换行符)

    读取数据时忽略空格、换行、tab,按字节提取。但有些要用符号来分隔。

    例如,int a ,float b; cin >> a >> b; 输入时应使用 :333空格34.5回车。最后的回车会被留在缓冲区。

2.2 cin.get()(会留下换行符)

    用来读取字符/规定长度的字符串。

   2.2.1  char a; a = cin.get(); 或 char a; cin.get(a); 此时可以接受空格或换行作为字符输入。除了接受的字符以外,代表结束的回车会被留在缓冲区。

    2.2.2 char a[20]; cin.get(a, 20); 可接受空格和字符,最多接受19个字符,最后一位是‘\0’.

    2.2.3 cin.get(); 提取输入流中的一个字符,这种用法可以用于舍弃输入流中不需要的字符。

2.3 cin.getline(); (不会留下换行符)

    用来读取字符串。完整的写法为cin.getline(name, size, flag); flag表示到这个字符的时候结束接受,默认为\0.最后的flag是被舍弃的。

2.4 清除缓冲区

    cin.clear(); 将cin的状态置位true。一般用在while(cin)时,一旦出现输入错误,需先将cin状态置位true,才能继续输入。

    cin.ignore();可以控制清除缓冲区的位置。例如cin.ignore(size, nflag); 就是缓冲区的字符,直至遇到nflag结束,且nflag会被舍弃,最大清除size个。如果直接使用cin.ignore()的意思是清除结束符EOF之前的1个字符,如果不给结束符,那就只清除一个字符。

    cin.sync();清除缓冲区所有。

 

 

 

 

 

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值