C++Primer Plus --- 复合类型

1. 数组

  (1)数组声明时应该指出:存储在每个元素中的值的类型;数组名;数组中的元素数。

         typename arrayname[arraysize];

         数组初始化规则:只有在定义数组时,才能使用初始化,此后就不能使用了,也不能讲一个数组赋给另一个数组。


int cards[4] = {3,5,6,7}; //ok
int hand[4];              //ok
hand[4] = {7,8,9,9};      //not allowed
hand = cards;             //not allowed


 2. 字符串

 a. 面向行输入:getline()

    读取整行,它使用通过回车键输入的换行符来确定输入的结尾。

    cin.getline(name,size); 

    getline()每次读取一行。它通过换行符来确定结尾,但不保存换行符。相反,存储字符串时,它用空字符来替换换行符。

 b. 面向行输入:get()

    工作方式与getline()类似,但是get并不再读取并丢弃换行符,而是将其留在输入队列中。

    cin.get(array1, arraysize);  //read first line

    cin.get();                      //read newline 

    cin.get(array2,arraysize);  //read second line 

    由于第一次调用后,换行符留在队列里,因此第二次调用看到的第一个字符是换行符。因此get认为已经到达末尾,而没有发现任何读取内容。如果不借助帮助,get()将不能跨过该换行符。

   幸运的是,使用不带任何参数的get()调用可以读取下一字符(即使是换行符)。

   另一种方式 cin.get(name,size).get();


 总之,getline()使用简单,get() 使得检查错误更简单些。


你可能感兴趣的:(C++Primer Plus --- 复合类型)