2024年4月20日发(作者:)

cin,(),e()区别

与前一节中提到的scanf函数一样,程序的输入都建有一个缓冲区,即输入缓冲区。一次

输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直

接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区

中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入,这就是例子中为

什么会出现输入语句失效的原因!

二.>>:

(1)该操作符是根据后面变量的类型读取数据。

输入结束条件 :遇到Enter、Space、Tab键。(这个很重要!)

对结束符的处理:丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)

(2)程序示例:(读字符串的情况)

#include

using namespace std;

int main()

{

char str1[10], str2[10];

cin>>str1;

cin>>str2;

cout<

cout<

return 0;

}

测试一输入:

abcd[Enter]

efgh[Enter]

输出:

abcd

efgh

【分析】输入遇到回车符结束,很正常。

测试二输入:

abcdefgh

输出:

abcd

efgh

【分析】第一次读取字符串时遇到空格则停止了,将abcd读入str1,并舍弃了空格,将

后面的字符串给了第二个字符串。这证明了cin读入数据遇到空格结束;并且丢弃空格符;

缓冲区有残留数据室,读入操作直接从缓冲区中取数据

():

(1)该函数有三种格式:无参,一参数,二参数

即(), (char ch), (array_name, Arsize)

读取字符的情况:

输入结束条件:Enter键

对结束符处理:不丢弃缓冲区中的Enter

() 与(char ch)用于读取字符,他们的使用是相似的,

即:ch=() 与(ch)是等价的。

(2)程序示例1:

#include

using namespace std;

int main()

{

char c1, c2;

(c1);

(c2);

cout<

cout<<(int)c1<<" "<<(int)c2<

return 0;

}

测试一输入:

a[Enter]

输出:

a