C++输入

来源:互联网 发布:小米盒子视频软件 编辑:程序博客网 时间:2024/06/09 14:40

C++输入比较简单,但是有时也比较容易出错,所以这里想大概总结一下。
C++输入函数主要有cin,cin.getline,getline
1. cin是最常用的输入函数,属于istream输入流对象,cin>>x其实是>>操作符进行将x赋值给cin对象的操作,最终返回cin对象本身(&istream)。
从键盘输入数据x时,当输入回车符时,数据被送入发送缓冲区中。网上有文章认为:每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据。个人认为cin并非输入回车符才检测,而是执行cin<

    cin>>str;    cout<<str<<endl;    cin>>str;    cout<<str<<endl;    cin>>str;    cout<<str<<endl;

这里写图片描述
输入为: we are happy
并且仅输入一次,直接输出三次,可见cin>>x是直接从缓冲区中取数据的。
而编程时经常会使用到的while(cin>>x),当输入为错误类型数据或ctl+d时,将终止输入,即直到eof文档结尾时结束输入,参考网址为:http://www.perfect-is-shit.com/deep-into-while-cin.html

CTRL+Z -> 引发异常 -> 记录异常 -> fail() 返回true-> operator void*() 返回 0 -> while结束。

  1. cin.getline函数为读取一行内容,以回车符结束,但是可以读取空格。格式为:
    istream& getline (char* s, streamsize n, char delim );
    表示读取n个字符或者读到delim字符结束的部分。第三字段可以省略,默认为回车符。
    1. getline与cin.getline功能相似似。格式为:
      istream& getline (istream& is, string& str, char delim);
      表示将is输入流读入str,直至遇到delim字符。
      区别主要为getline为string流,需要包含string的头文件。
0 0