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的区别的更多相关文章

  1. cin.get()和cin.getline()之间的区别

    cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别. cin.get()每次读取一整行并把由Enter键生成的换行符留在输 ...

  2. [C/C++] 输入函数getline(cin,str) 与cin.getline(str,int)区别

    cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度. getline(cin,str ...

  3. 基础篇(1):c++程序基本结构

    本人是初中生,原用Pascal语言,现转c++,所以写几篇博客,分享一下. 补一句,我是一边转c++一边写博客,所以可能会有错误,望过路大神能指出. 参考书籍:<信息学奥赛一本通>< ...

  4. C++_STL基础案例

    C++ C++三种容器:list.vector和deque的区别:https://blog.csdn.net/gogokongyin/article/details/51178378 一.容器 小常识 ...

  5. c++中获取字符cin,getchar,get,getline的区别

    http://www.imeee.cn/News/GouWu/20090801/221298.html cin.get()与getchar()函数有什么区别? 详细点..C++中几个输入函数的用法和区 ...

  6. scanf 与 cin 的区别

    在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41 ...

  7. C++获取字符cin,getchar,get,getline的区别

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5241544.html 1.cin>> 1)最常见的是获取输入的一个字符或数字,如 in ...

  8. 关于scanf 与 cin gets(),getline()......输入输出字符串的区别

    很对人对于字符串的输入输出一直是比较模糊的,今天总结一下几个常用的输入流符号对于输入字符串时的区别: 1.scanf(),首先 它遇到空格或回车键(\n)就会结束,并且会将回车符算入字符串中: 2.c ...

  9. 日常笔记4关于cin、cin.get()、cin.getline()、getline()使用区别

    1.关于PAT中段错误 使用字符数组出现错误: char str[256]; 报错段错误,然后改用C++中的string 改成: string str; 同char数组一样,也可以使用下标来取单个字符 ...

随机推荐

  1. Spring bean作用域

    全当知识要点记录了,大家随意踩踩. spring的作用域有以下几种singleton作用域prototype作用域request作用域session作用域global-session作用域 1. si ...

  2. Java--不可覆盖的方法

    私有方法不能被覆盖: 因为private被自动认为final,对子类是屏蔽的,那么子类中的相同方法就是一个新的方法,编译器不会报错但也不会按期望运行: public class ClassA { pr ...

  3. Chrome经常新标签页打开http://destyy.com/qNHR3u

    经常新标签页打开http://destyy.com/qNHR3u网址. 在历史记录里查询 chrome://history/?q=destyy.com ,发现最早访问是25日10点34分05.貌似那个 ...

  4. PHP分多步骤填写发布信息的简单方法实例代码

    1.php 复制代码 代码如下: <form name=form1 id=form1 method=post action=2.php> 基本信息1:<input type=text ...

  5. jdbc练习demo

    //连接云端服务器数据库工具类 public class TestJDBCUtil { public static String driver="com.mysql.jdbc.Driver& ...

  6. PS7.0快捷键和使用技巧

    选择工具:矩形.椭圆选框工具 [M]裁剪工具 [C]移动工具 [V]套索.多边形套索.磁性套索 [L]魔棒工具 [W] 编辑工具:修复画笔.修补工具 [J]画笔.铅笔工具 [B]橡皮图章.图案图章 [ ...

  7. Redis 主从分离

    首先配置redis.conf文件如下6个位置 cp 多个redis.conf文件 开启daemonize yes PID文件名字 端口 log文件名字 dump.rdb名字 配置: 主机不动,配置从机 ...

  8. Git----远程仓库之添加远程库02

    现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub上创建一个Git库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...

  9. 智能指针--C++

    智能指针(一):STL auto_ptr实现原理 智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢? 指针与内存 说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了 ...

  10. nodejs-supervisor

    小技巧——使用 supervisor 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪 ...