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();
  • 相关阅读:
    ResourceBundle读取utf-8格式properties 中文乱码
    jquery checkbox选中
    扩展RBAC用户角色权限设计方案<转>
    Java调用doNet webService方法
    Mybatis批量更新<转>
    Json转list,两种包,两种方式
    win8.1 64位安装oracle10g客户端心得
    关于JXL读写以及修改EXCEL文件<转>
    Oracle主表列表上显示从表字段拼成的字符串
    ExtJS获取Grid的行数
  • 原文地址:https://www.cnblogs.com/yanyiming10243247/p/9238536.html
Copyright © 2011-2022 走看看