2. getline()和get()

时间:2022-02-22 21:22:34

1.面向行输入:getline() ---其实还可以接受第三个参数。

  • getline()函数读取整行,调用该方法
  • 使用cin.getline()。该函数有两个参数,
  • 第一个参数是是用来存储输入行的数组的名称,
  • 第二个参数是要读取的的字符数。若这个参数为20,则函数最多读取19个字符加一个空字符。
  • getline()函数每次读取一行,通过换行符确定行尾,但不保存换行符。在哪存储字符串时,他用空字符来替换换行符。
cin.getline(array,20); //表示将把一行读入到array数组中,前提是这行字符不超过19个,

1. get()函数(有三种用法)

  • 该函数有几种变体,其中一种变体的工作方式与getline()类似,接收参数和解释参数发方式也相同,并且都读到行尾。
  • get()不会丢弃换行符。而是将其留在输入队列中。
  • 若连续两次调用get(),由于第一次调用后,换行符将留在输入队列中。因此第二代次调用时看到的第一个字符便是换行符,因此get()认为已到达行尾,而没有发现任何可取的内容。
cin.get(array1, Size);
cin.get(array2, Size);
  • 使用不带任何参数的cin.get(),可读取下一个字符(包括阔换行符),用它处理换行符,为读取下一行输入做好准备,可以解决上面的问题。
cin.get(array1, Size);
cin.get();
cin.get(array2, Size);
  • 将两个类成员函数合并
cin.get(array, Size),get();  //cin.get()返回一个cin对象,该对象被用来调用get()函数
  • 将输入中连续的两行分别读入到数组name1和name2中,效果和两次调用cin.getline()相同。
cin.getline(name1, Size).getline(name2, Size);