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


发布评论