一、cin概述
- cin是C++中的一个对象,输入流对象
- 用户在命令行输入的内容最终会发送到cin输入流中
- cin会忽略掉输入中所有的space,enter,tab按键
- 发送给cin的输入被缓冲,只有当用户按下enter键,输入的内容才会发送给程序
- cin >> ch,ch只从cin中取第一个字符
二、文件结尾
1.文件结尾用EOF表示,在键盘中用Enter或者Ctrl+Z与Enter的组合
2.当cin检测到EOF时,会将eofbit和failbit都设置为1.
- cin.eof()函数可以查看eofbit是否被设置,如果检测到EOF,则cin.eof()将返回bool值true,否则返回false。
- cin.fail()函数,对于eofbit或failbit被设置为1,则函数返回true,否则返回false。
三、cin特性
- cin.get(char)的返回值为cin,当cin出现在需要bool值得地方(如在while循环的测试条件中)时,该转换函数将被调用。如果最后一次读取成功,则转换得到的函数为true,否则为false。需要注意的是,如果cin读取成功,首先将值放入char中,然后程序获取函数调用的返回值,即cin。接下来,程序对cin进行bool转换,如果输入成功,则结果为true,否则为false.如果cin遇到EOF,则表示cin读取失败,并且不会将EOF放入char中,并返回false.
- cin.get()函数,与c中的getchar()类似,返回输入中的下一个字符,将字符编码作为int值返回,当遇到EOF时,将没有可返回的字符,cin.get()返回一个用符号常量EOF表示的特殊值,在iostream中定义,EOF通常定义为-1,因为ASCII中没有字符对应的ASCII码为-1.需要注意的是EOF不表示输入中的字符,而是表示没有字符了。
- 因为EOF不是有效字符,如果char没有类型,所以char不可能为EOF,所以接收cin.get()的变量应该为int类型,而不是char类型,存储字符的ASCII即可。
四、cout特性
1.cout与cin一样,是一个输出流
2.cout << char,注意cout会将char按照字符方式输出,如果需要输出char