做各大公司笔试题的时候最头疼的时候就是各种输入要求了,有时候要在输入上花费好多时间,所以现在来做个总结,来加强自己的记忆,以免下次在输入浪费不必要的时间;
1.cin
cin和cout是C++中的标准输入输出流对象,分别是istream类的对象和ostream类的对象。
cin读取输入流是遇到空格,回车就停止;
cin可以识别string,char,int,double等类型的输入;
输入的字符在敲一下回车键后送入到缓冲区中(敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在cin的缓冲区中)cin读取数据也是从缓冲区中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就调用cin的成员函数依次去读取数据;
2.cin.get()----读入多个字符
get()函数里面可设置三个参数,第一个是存放输入的,第二个是设置读取的输入的个数(超出的被丢弃),第三个是遇到即结束读入的标记;
如上图所示,get()函数遇到空格也不停止输入 ,且空格也计入输入总数,遇到回车键停止输入;
3.cin.get(ch)--读入一个字符
get(ch)只能读入一个字符,必须是字符!!!
4.getline()
getline与get区别不是很大,但一个明显的区别是get遇到'\n '字符后便返回,这时 '\n '还在缓冲区中,所以下次读出来的将是 '\n ',而getline遇到'\n '也返回,但它会把 '\n '从缓冲区里移除掉,如下图所示:
getline() 的使用形式还有另外一种,如下:
ha
5.getchar()--每次读入一个字符,直至没有输入
空格也算做一个字符,如下
6.gets() --输入一个字符串,接受空格
不知道为啥我的VS显示gets是未定义的标识符,截不了图;
Notes:getchar、get、gets、getline都能识别空格;读取输入直到回车后,getline会丢弃回车,而getchar、get和gets不丢弃保留在输入缓冲中!!!
7.scanf()
C语言中的输入库函数,不多讲了;
8.puts()--显示一个字符串
同样的,putchar()是显示一个字符;