cin.get\gets\getchar区别 ——分毛!菜鸟就先全部用cin.get吧!
cin.get
- 一般作用:
用法1: cin.get(字符变量名)可以用来接收字符
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
//cin.get(a,20)
char a[20];
cin.get(a,20);
cout<<a<<endl;
- 高级作用:从标准输入吸收任何字符(包括回车和空格),优先吸收cin缓存(之前cin的残留内容)。
char ch;
cout << "This program has paused. Press Enter to continue.";
cin.get(ch);
cout << "It has paused a second time. Please press Enter again.";
ch = cin.get();
cout << "It has paused a third time. Please press Enter again.";
cin.get();
cout << "Thank you! \n";
- 与cin关系:因为 get 函数是内置在 cin 对象中的,所以可称之为 cin 的一个成员函数。
- 混合使用 cin>> 和 cin.get导致err
原因:cin>> 语句读取用户输入的数据时,它会在遇到换行符时停止。换行字符未被读取,而是仍保留在键盘缓冲区中。
char ch; //定义一个字符变量
int number; //定义一个整型变量
cout << "Enter a number: ";
cin >> number; // 读取整数
cout << "Enter a character: ";
// cin.get();//加上这句才正确!
ch = cin.get() ; // 读取字符
cout<<number<<" "<<ch<<endl;
cout << "Thank You!\n";
cin.peek()
作用:用于观察当前指针指向的字符(char)
特殊用法:while (cin.peek() != ‘\n’) //遇到换行符终止输入