懵懂的菜鸟

Stay hungry,Stay foolish.

导航

cin和gitchar的区别

cin是iostream(输入输出类) 类下的istream(输入类)类的对象,作用是顺序输入字符串。cin.get()是cin的方法。cin.get()是C++面向对象的操作,getchar()是C语言面向过程的操作。cin的返回值是istream的引用,getchar()的返回是int。

关于cin的具体写法,cin是C++中已定义好的对象,人工定义如下istream & operator >> (istream &cin, C &c);   即cin的返回是istream的引用

 if((ch=getchar())=='#')

“=”的结合时从右到左
ch=getchar(),是一个整体
我是要先输入一个字符并且赋值给ch,
在把ch和其它字符比较
故要加括号
 

(ch=getchar())!=‘N ’
首先出现这个,他想要实现的就是
接收字符给ch,再把ch和N比较
这一题主要考察”=“的结合,
首先!=,==优先级高于=
是从右到左的

不打括号就是输入一个字符和N比较把比较的结果赋值给ch。
getchar的原型为
int getchar(void);
功能为从终端读取一个字符 并返回
所以它的返回值应该存在一个变量里面
由于是从终端取一个字符 所以大多数时候是存在字符型变量中的
char c = getchar();
但这样的操作实际上是不正规的
因为getchar的返回值是int型 标准做法是
int c = getchar();

区别只有一个 就是当出错的时候
int型时会返回一个EOF 其值为-1 这个只有在用int的时候 才会体现出来
如果用char型 那么EOF会和终端中可能输入的ascii码0xff混淆

也就是说 如果不需要判断出错 或者终端输入为可读字符时 用char和int没有区别
如果需要判断出错情况 且终端输入为bin类型 那么需要用int
ostream是个定义了输出流的类,用于输出的,不是标准输出,标准输出是cout,ifstream和ofstream分别是从istream和ostream继承来的,只不过他们的作用对象是文件流而已。 

他们的关系就是子类和父类之间的关系,我如果具体说的话会越来越麻烦,我想你需要把C++的OO思想复习以下,你应该就会很容易理解了。

i代表输入input
o代表输出output
stream//流
iostream//输入输出流,这只是C++的一个流文件,因为C++的输入输出都是流处理的
istream//就是只管输入的流
ostream//就是只管输出的流
cin>>//这是输入
cout>>//这是输出

posted on 2017-09-26 17:15  懵懂的菜鸟  阅读(498)  评论(0编辑  收藏  举报