• String和get


    在ch4的作业中暴露出了我不懂的一些问题,主要是和String有关的定义和头文件以及和get有关的函数。

    String

    在C++中如果想定义字符串型,即String a;则需要用到头文件<string>或<string.h>

    有些人会问,这两个有什么差别呢?

    其实和<iostream>与<iostream.h>类似,带.h的如<iostream.h>、<string.h>是原先用于C语言的头文件,而不带.h的<iostream>、<string>自然是C++的头文件。

    由于C++兼容C,所以两个头文件都是可以被识别并使用的,但是我亲测,还是建议大家用C++的不带.h的头文件。

    为什么呢?当然不止是为了跟上时代的步伐,还有更加实际的好处。

    由于C语言中没有引入名命空间std,所以其中的标识符如<<、>>是不会被识别的。

    也就是说,如果你只用了<string.h>,那么没事,可以成功定义,string a;没问题。但是你想要输入输出就会麻烦点了,如果直接cin>>a,就会报错,并提示没有匹配的运算符。

    但神奇的事情在于,<iostream>可以看成<iostream.h>的升级版,但是<string>和<string.h>就不行了。

    因为在C++推出之前,C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件。这个头文件跟C++的string类半点关系也没有,所以<string>并非<string.h>的“升级版本”,他们是毫无关系的两个头文件。

    (引用:http://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html)

    get函数

    1、cin:作为最基本的输入方法,不多说。

    1、cin.get():可以用来接收字符,通常用于循环条件中读取各种字符。ch=cin.get()或者cin.get(ch)都可以将字符存入ch变量中。

    2、cin.getline():接受一个字符串,可以接收空格并输出。

    3、getline():接受一个字符串,可以接收空格并输出。

    getline()和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数。

    4、gets():需包含<string>。接受一个字符串,可以接收空格并输出,但是读到换行符' 会将其转换为''并停止读取,也就是说只能读取一行数据。一般传入数组

    1     
    2     char str[20] = "";  //字符数组初始化
    3 
    4     gets(str);        //输入“i love you”,
    5 
    6     printf("%s
    ", str);      //输出“i love you”
    View Code

    5、getchar():接受一个字符,需包含<string>、<iostream>

    getchar()是C语言的函数,C++也可以兼容,但是建议少用或不用。

  • 相关阅读:
    List、Map、set的加载因子,默认初始容量和扩容增量
    spring事务处理
    根据url的属性名来取属性值赋值给js
    XStream JavaBean对象转换成XML!
    【转载:java】详解java中的注解(Annotation)
    Myeclipse修改jdk版本流程
    Bootstrap中文参考手册
    CSS3参考手册
    HTML 5 参考手册
    win7win8一键取得超级管理员权限
  • 原文地址:https://www.cnblogs.com/luoyang0515/p/9897300.html
Copyright © 2020-2023  润新知