zoukankan      html  css  js  c++  java
  • 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>>//这是输出
  • 相关阅读:
    与开发团队高效协作的8个小技巧
    9本java程序员必读的书(附下载地址)
    NPOI导出饼图到Excel
    EF6不支持sqlite Code First解决方案
    C#程序访问底层网络
    如何自己开发软件测试工具?
    .Net mvc 根据前台参数动态绑定对象
    在SSM框架里新增一个功能
    2018-10-12 例会总结
    2018-10-11 java从入门到放弃--方法
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7597807.html
Copyright © 2011-2022 走看看