C++中的cin
c++中cin的作用是获用户键盘输入的字符
用法如下
using namespace std;
char[] ch;
cin >> ch;
cout << ch;
首先是使用std命名空间然后创建一个char类型数组把输入的字符存入到数组里然后输出
cin还提供了两个get方法
第一个是cin.get()
第二个是cin.get(char)
这两个方法有啥区别呢?
第一个方法是获取一行的字符
另一个作用:可以让窗口一直保持不关闭
用法如下
using namespace std;
char[] ch;
ch = cin.get();
cout << ch;
一样使用std命名空间因为cin是在std命名空间的
使用cin或者cout都得导入iostream头文件
否则将会报错因为要用到流操作所以必须导入
另外还有一个cin.getline(chars,int)方法
这个函数看函数名就知道大概的意思了就是获取一行的字符存入chars数组中至于int呢就是他要写入的长度
比如我输入了一行文字长度总长度为10
然后我调用方法
cin.getline(chars,5);
就是说读取一行中的五个字符存入到chars数组中
这里有个最关键的说明就是
cin >> ch的方法是无法会忽略空白字符如换行符制表符等
所以使用cin.get(char)来解决这个问题
gets函数可直接读取一行
P.S:
cin.get(char[],len);
这个方法是获取下一行多少个字符存入到char[]中包括空白符号如空格换行符等
cin.get()
这个方法可以让窗口不关闭功能和第一个cin.get的使用方法一样不过他不用传入参数而且他只能获取下一个字符包括空白字符
一般这样子使用
cin.get(char[],len).get()
cin.getline(char[],len)
这个函数读取一行的时候遇到换行符或者是指定长度后停止如我想获取五个字符则
cin.getline(char[],6)
这里5+1=6而这个1则是自动添加的空字符
当get读取空行的好时候将设置failbit(失效位)并停止当前的输入
恢复输入需要使用cin.clear把failbit(失效位)清空
当输入包含的字符长度大于了读取的长度时getline和get会将剩余的字符留在输入队列中,而getline也会设置failbit(失效位)后面的输入还是会被阻断
读取数字和字符时如
输入了5回车后需要输入地址但是没有输入就运行完成了因为5后面有空白字符
需要配合使用get方法
(cin>>a).get();来解决这个问题或者使用上述所说的方法来解决
老版本中没有getline推荐使用get更仔细,如何知道程序停止读取的原因是换行符了还是因为已经读满数组了