把c++的输入输出整理
一直对这个输入输出有了解,但是不是特别的清楚,毕竟混乱是一切忧虑的根源!
比较晚了,没有怎么仔细检查,如果有错误请大家见谅。。。
1.>>
跳过了空格 制表符 和 换行,也就是说 12 13 14 15 cin>>a;
会直接读取12 ,然后跳过空格,直接来到13
2.cin.get(char&)
不跳过空格等,并且返回调用它的isteream的引用(注意,当到达文件尾的时候,返回false,因此可用来判断是否到达文件尾)
3.cin.get(void)
和cin.get(char&)类似,同样不跳过空格等,但是以返回值的形式将输入传递给程序(注意它的返回类型为整型,但是到达文件尾时返回EOF)
什么是EOF?
(1)
计算机术语,缩写通常为EOF(End Of File),在操作系统中表示资料源无更多的资料可读取。
(2)
在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志
(3)
C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志。
4. istream& cin.get(char *,int ,char)
istream& cin.get(char*,int)
istream& cin.getline(char*,int ,char)
istream& cin.getline(char*,int)
都是读取一行,直到最大数目(比如,cin.get(c,10),则最大数为9,当读到第9个后,停止读取)或者遇到换行符(默认为'\n')
他们的主要区别在于:
get()将换行符(默认)留在输入流中,接下来读取到的将是换行符
getline()会抽取换行符(默认),并且将输入流中的换行符丢弃(因此,我们常常这么用 cin.get(pl,size).get();后面那个get用来读取换行符
补充:软件开发 , C++ ,