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>>//这是输出
cin和gitchar的区别的更多相关文章
- cin.get()和cin.getline()之间的区别
cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别. cin.get()每次读取一整行并把由Enter键生成的换行符留在输 ...
- [C/C++] 输入函数getline(cin,str) 与cin.getline(str,int)区别
cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度. getline(cin,str ...
- 基础篇(1):c++程序基本结构
本人是初中生,原用Pascal语言,现转c++,所以写几篇博客,分享一下. 补一句,我是一边转c++一边写博客,所以可能会有错误,望过路大神能指出. 参考书籍:<信息学奥赛一本通>< ...
- C++_STL基础案例
C++ C++三种容器:list.vector和deque的区别:https://blog.csdn.net/gogokongyin/article/details/51178378 一.容器 小常识 ...
- c++中获取字符cin,getchar,get,getline的区别
http://www.imeee.cn/News/GouWu/20090801/221298.html cin.get()与getchar()函数有什么区别? 详细点..C++中几个输入函数的用法和区 ...
- scanf 与 cin 的区别
在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41 ...
- C++获取字符cin,getchar,get,getline的区别
原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5241544.html 1.cin>> 1)最常见的是获取输入的一个字符或数字,如 in ...
- 关于scanf 与 cin gets(),getline()......输入输出字符串的区别
很对人对于字符串的输入输出一直是比较模糊的,今天总结一下几个常用的输入流符号对于输入字符串时的区别: 1.scanf(),首先 它遇到空格或回车键(\n)就会结束,并且会将回车符算入字符串中: 2.c ...
- 日常笔记4关于cin、cin.get()、cin.getline()、getline()使用区别
1.关于PAT中段错误 使用字符数组出现错误: char str[256]; 报错段错误,然后改用C++中的string 改成: string str; 同char数组一样,也可以使用下标来取单个字符 ...
随机推荐
- C#对象的三种序列化
要让一个对象支持.Net序列化服务,用户必须为每一个关联的类加上[Serializable]特性.如果类中有些成员不适合参与序列化(比如:密码字段),可以在这些域前加上[NonSerialized]特 ...
- pthread中取消线程
取消线程:告诉一个线程关掉自己,取消操作允许线程请求终止其所在进程中的任何其他线程.不希望或不需要对一组相关的线程执行进一步操作时,可以选择执行取消操作.取消线程的一个示例是异步生成取消条件. 对于c ...
- oracle12c之 表空间维护总结
1.1.创建永久表空间 In the CDB:SQL> CONNECT system@cdb1SQL> CREATE TABLESPACE cdb_users DATAFILE'/home ...
- 给Linux内核增加一个系统调用的方法(转)
作者:chenjieb520 给Linux内核增加一个系统调用的方法 为了更加好地调试linux内核,笔者的实验均在mini6410的arm板上运行的.这样做的原因,第一是因为本人是学嵌入式的, ...
- CSS背景图像的简单响应
本文设有很多,最理想的解决方案,响应图像只是其中之一.我们建议您查看不同的方法,然后再选择一个特定的响应图像解决方案,包括这两个:如何避免重复下载响应图像中选择响应图像解决方案. 大家都在谈论的的sr ...
- css3中的相关单位
引用地址 :http://blog.csdn.net/jyy_12/article/details/42557241
- ckplayer的Error #2033:Can not call javascript:ckstyle()解决
在我们添加多个视频的时候,就会出现这个报错:Error #2033:Can not call javascript:ckstyle(); 但是也不是所有的浏览器都不能正常运行,我这边就是IE10不能正 ...
- Python的设计哲学
Beautiful is better than ugly. 优美胜于丑陋 Explicit is better than implicit. 明了胜于晦涩 Simple is better than ...
- python中tornado的第一个例子
1 先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字 不然会报错 ImportError: No module n ...
- 合并SCVMM虚拟机的差异磁盘,并删除那些难以删除的Checkpoints(Shapshots)
使用Microsoft Data Protection Manager(DPM)有时会造成虚拟机的动态和固定磁盘变成差异磁盘,这个应该与DPM进行差异备份有关,未知原因造成DPM差异备份后无法复原原来 ...