zoukankan      html  css  js  c++  java
  • CPL学习笔记(二)

    数组

    数组(array) 声明通用格式为:
    typeName arrayName[arraySize].

    arrayName指定元素数目,必须为整型常量或const值。(不能是变量)

    int a[3]={0,0,2};  //正确
    int b[3];
    b[3]={1,1,1};     //错误

    只有在定义数组时才能使用初始化,此后不能使用。 如果只对数组的一部分进行初始化,编译器会将其他元素设置为0.

    int a[5]={0};
    int a[5] {};
    int a[5] {1,2,3,4,5};

    其中前二组方法都可以将数组初始化为0,后二种则是C++11中列表初始化的新功能,省略‘=’。

    字符串

    char cat[5]={'a','b','j','k',''}; //字符串
    char dog[5]={'a','f','g','v','c'};  //字符数组

    C-风格字符串的特殊性质:以空字符结尾。
    这时如果将两个字符数组cout,cat数组遇到空字符便会自动停止,而dog数组会继续向下输出知道有一个内存位置为空字符。(尽管内存中的空字符往往很多,但尽量不要冒这个险)

    char cat[6]="abcde";

    这种初始化方法默认将剩余数组位置赋为空字符。应确保数组够大,能存储所有字符——包括空字符!!!

    面向行的字符串读入

    1、getline() getline函数读整行,通过换行符确定输入结尾,随后此函数将丢弃换行符(不错的性质),通用格式如下:

    cin.getline(arrayName,length);

    2、get() get函数读整行,通过换行符确定输入结尾,但是随后此函数不会丢弃换行符,通用格式:

    cin.get(arrayName,length);

    这时如果两个get连用,就会发现第二个get会读入失败,这是因为第一个get未丢弃的换行符成为了第二个get读到的第一个字符,于是乎,第二个get什么也没有读到就结束了。

    结决方法自然是有的:

    cin.get(a,3);
    cin.get();
    cin.get(b,4);

    大功告成。因为不带参数的cin.get()将会读入一个字符,包括换行符。也可以将get()进行拼接:

    cin.get(a,3).get();
    cin.get(b,4).get();
    cin.getline(a,3).getline(b,4);
    (cin>>a).get();
  • 相关阅读:
    高通电池曲线(转)
    随笔分类
    海思uboot启动流程详细分析(转)
    GPRS以TCP上传数据到服务器OK,但收不到服务器下发的数据
    WIS800C TCP Client 非透传模式连接远程服务器使用方法(转)
    MySQL 不允许从远程访问的解决方法
    Linux下将Mysql和Apache加入到系统服务里的方法
    linux服务器出现严重故障后的原因以及解决方法
    Linux防火墙该如何设置
    Linux下的两个聊天命令的使用方法
  • 原文地址:https://www.cnblogs.com/yanyiming10243247/p/9238536.html
Copyright © 2011-2022 走看看