C++ primer plus 第六版课后作业和题——第四章——关于字符串、结构体、共同体、枚举的知识

1.getline() 和get()是 iostream类中一些面向行的类成员函数,这两个函数都是读取一行输入,
直到到达换行符,getline()将丢弃换行符,get()将换行符保留在输入序列中



cin.getline(name,20)此时函数最多读取19个字符,余下的空间用于存储自动在结尾处添加的空字符




cin.get(name,Size);
cin.get();
cin.get(age,Size);
上述三行代码就是get()的用法,如果想要连续的输入字符串,就必须用中间的语句cin.get();,
来帮助get()跳过保留在序列中的换行符才行,也可以用下面的合并代码实现
cin.get(name,Size).get();
cin.get(age,Size).get();


2.使用string类,先来声明#include

string类能够相互赋值,还能相加


3.结构体还能作为数组,如下代码

a[2]=
{
{"wujinhui", 0.5 , 21.99},
{"dujuan", 0.5 , 21.99}
};

用cout << a[0].name可以调用第一个结构体的第一个值


4.共同体

共同体(union)能够存储不同的数据类型,但是同时只能存储其中的一种类型,代码意义如下:

union one4all

{

int int_val;

long long_val;

double double_val;

};

可以使用one4all变量来存储int、long或double,前提是在不同的时间进行:

one4all gongtongyi;

gongtongti.int_val = 15;

cout << gongtongti.int_val

gongtongti.double_val = 1.39;

cout <<  gongtongti.double_val ;

赋值一次就显示一次才行,不然赋值就会被覆盖

共同体一般用在数据有多种格式但是一次只用一种的情况下,比如小商品目录,有一些商品的ID是数字,有一些是字符时。

5.枚举(enumeration)

enum工具提供了另一种符号常量的方式,这种方式可以替代const

如enum meijucanshu(red,yellow,blue),括号中的三个参数是符号常量,枚举量的值默认为0,1, 2,……enum meijucanshu(red,yellow = 100,blue);对枚举量进行赋值也是可以的,后面的量比前面大1,所以这里blue是101

你可能感兴趣的:(Primer,Plus,作业)