`
bcyy
  • 浏览: 1826113 次
文章分类
社区版块
存档分类
最新评论

【C++】输入流cin方法

 
阅读更多

检查输入

cin会检查输入格式,输入与预期格式不符时,会返回false.
    cout << "Enter numbers: ";
    int sum = 0;
    int input;
    while (cin >> input)
        sum += input;
    cout << "Last value entered = " << input << endl;
    cout << "Sum = " << sum << endl;

上面的检查可以放入try、catch语句中。
	try{
	    while (cin >> input)
		    sum += input;
	}catch(ios_base::failure &f){
		cout<<f.what()<<endl;
	}

字符串输入:getline()、get()、ignore()

getline()读取整行,读取指定数目的字符或遇到指定字符(默认换行符)时停止读取。
get()与getline()相同,接受参数也相同,均在读取到指定数目字符或换行符时停止读取。但get()将换行符停在输入流中,即下一个函数读到的首个字符将是换行符。
ignore()接受的参数也同getline(),忽略掉指定数目的字符或到换行符。
    char input[Limit];
    cout << "Enter a string for getline() processing:\n";
    cin.getline(input, Limit, '#');
    cout << "Here is your input:\n";
    cout << input << "\nDone with phase 1\n";
    char ch;
    cin.get(ch);
    cout << "The next input character is " << ch << endl;
    if (ch != '\n')
        cin.ignore(Limit, '\n');    // 忽略接此一行余下内容
    cout << "Enter a string for get() processing:\n";
    cin.get(input, Limit, '#');
    cout << "Here is your input:\n";
    cout << input << "\nDone with phase 2\n";
    cin.get(ch);
    cout << "The next input character is " << ch << endl;



例子中使用getline(),接下来的get()读到字符为3,忽略掉#;而get()之后,#在流中,所以读到字符为#。

read()

类似write()方法,读取指定数组字符。
char score[20];
cin.read(score,20);

putback()

putback()将一个字符插入到输入字符中,被插入的字符是下一条语句读到的第一个字符。
    char ch;
    while(cin.get(ch))          // terminates on EOF
    {
        if (ch != '#')
            cout << ch;
        else
        {
            cin.putback(ch);    // reinsert character
            break;
        }
    }
	cin.get(ch);
	cout << endl << ch << " is next input character.\n";

peek()

返回输入流中的下一个字符,但只查看不抽取。

char input[100];
char ch;
int i=0;
while((ch=cin.peek())!='.'&&ch!='\n')
	cin.get(input[i++]);
input[i]='\0';

程序遇到句号或换行符循环停止。句点或换行符仍停留在输入流中。
可见,使用peek的效果相当于先用get()读取一个字符,再用putback()将字符放入输入流中。

参见《输入流cin方法

*参考资料:《C++ Primer Plus 5nd》

(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu未经允许请勿用于商业用途)


分享到:
评论

相关推荐

    浅谈c++中的while(cin)问题

    xp系统中利用dev-cpp进行编程,语句while(cin&gt;&gt;str),str是个string...cin.get() 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检查的方式有两种:阻塞式以及非阻塞式。  阻塞式

    C++ 中cin 输入流的多种函数用法.doc

    C++ 中cin 输入流的多种函数用法.doc

    C++中cin输入流的多种函数用法.doc

    C++中cin输入流的多种函数用法.doc

    C++ 输入输出流重定向到外设

    C++ 标准输入输出模块,为字符流操作提供了便捷的途径,软件开发当中,尤其是嵌入式系统开发当中,有时候需要把流信息重新定向到特定的端口,如串口,以太网,USB等。如标准输入输出cout, cin默认将字符流定向到...

    C++输入输出流实验

    #include #include using namespace std; int main() {float a,b,c,s; cout输入a,b,c的值";...cin&gt;&gt;a&gt;&gt;b&gt;&gt;c; s=(a+b+c)/2; if(a+b&gt;c&&a+c&gt;b&&b+c&gt;a) cout(s*(s-a)*(s-b)*(s-c)); else cerr输入数据有误"; return 0; }

    C++键盘输入与屏幕输出

    键盘输入与屏幕输出 C++中通过输入/输出流来实现标准输入/输出操作。 流是与I/O设备相关联的数据通信对象 输入操作通过流cin来实现 输出操作通过流cout来实现

    C++ 输入 输出 格式 带例子

    C++ 输入 输出 格式 一:标准输入函数cin 不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin&gt;&gt;变量; ..................

    C++输入输出流

    为了更好的学习c++的朋友,这里推荐一篇输入输出流部分的文档,其类容讲的深入透彻,利于学习。

    C++--IO流类库

    标准输入流 cin 与标准输入设备相关联 标准输出流 cout 与标准输出设备相关联 非缓冲型标准出错流 cerr 与标准错误输出设备相关联(非缓冲方式) 缓冲型的标准出错流 clog 与标准错误输出设备相关联(缓冲方式) 在默认...

    c++ cin 作为while条件(详解)

    cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream...

    C++I/O描述

    介绍了 C++的 I/O( 输入输出 )问题,本文结构清晰,讲解简单易懂,对 C++ 的流模型作为细致...入部分,介绍了 cin 流,输入时的错误检测机制,及使用输入流类的成员函数进行输入的函数。最后详细介绍了文件的 输入输出

    C++编程中用put输出单个字符和cin输入流的用法

    主要介绍了C++编程中用put输出单个字符和cin输入流的用法,是C++入门学习中的基础知识,需要的朋友可以参考下

    c++中cin/cout与scanf/printf的区别比较

     cin代表标准输入设备,使用提取运算符 “&gt;&gt;” 从设备键盘取得数据,送到输入流对象cin中,然后送到内存。  cin是输入流,cout是输出流,重载了”&gt;&gt;”、”&lt;&lt;“运算符,包含在头文件中。  先把要输出的东西...

    面向对象的程序设计语言——C++

    5.C++数据输入流对象cin和输出流对象cout的使用。 6.程序的3种基本结构 7.构造数据类型,如数组、结构体、指针等的定义方法、特点和使用方法。 7.函数的定义、调用及函数调用过程中的参数传递的机理和程序执行...

    C++中cin的用法详细

    cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream...

    C++ 基本的输入输出cout

    C++ 基本的输入输出 C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。 C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如...

    《由浅入深学C++-基础、进阶与必做300题》pdf格式 (完整版 带目录

    4.3.1 标准输入流cin 65 4.3.2 标准输出流cout 66 4.3.3 输出流cerr和clog 68 4.4 格式控制函数 69 4.5 格式控制符 71 4.5.1 控制不同进制的输出 72 4.5.2 控制输出宽度 72 4.5.3 控制输出精度 73 4.6 顺序...

    C++标准库stl

    &lt; iostream&gt; 支持标准流cin、cout、cerr和clog的输入和输出,它还支持多字节字符标准流wcin、wcout、wcerr和wclog。 &lt;iomanip&gt; 提供操纵程序,允许改变流的状态,从而改变输出的格式。 &lt;ios&gt; 定义iostream的基类 ...

    C++讲解:孙鑫之掌握C++.md

    ​ C++中提供了一套输入输出流类的对象,它们是**cin 、cout和cerr**,对应c语言中的三个文件指针stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。**cin与&gt;&gt;一起完成输入操作,...

Global site tag (gtag.js) - Google Analytics