前言

作为C++获取输入流的方法,几乎在任何一本资料书上,getline()方法和get()方法都作为入门级的方法进行讲述,即便如此,笔者在学习C++的过程中仍经常忘记这二者的使用要点,可能也有C++的初学者对这两个方法还心存疑虑,本篇文章就这两个方法的使用进行简要阐述。标题的初探二字已经表示本文只是以学习笔记的形式进行记录,不是在深层次上对二者进行分析。

 

最原始的方法:

获取输入流最原始的形式就是cin>>(type),但是这种形式在碰到输入中有空格、制表符或者换行符的时候就会中断,值得注意的是中断后空格、制表符或者换行符还继续留在输入流中。所以最简单的,我们无法使用cin>>(type)的形式来读取包含空格的字符串,比如输入流中有一句:How are you?使用cin>>(type)是无法一次性读取出来的,鉴于此,getline()方法和get()方法便诞生了。

 

getline()方法:

getline()方法读取整行,他使用通过回车键输入的换行符来中断,getline()方法有两个参数,第一个参数用来存储输入行的数组的名称,第二个参数用来表示读取字符数的大小。getline(name,size)的方法的使用过程如下:

1. 从输入流中读取一个字符。

2. 如果读取数量达到size-1,将该字符存储到name数组,删除输入流中的该字符,跳转到5。

3. 如果该字符是换行符,删除输入流中的该字符,跳转到5。

4. 否则,将该字符存储到name数组,删除输入流中的该字符,跳转到1。

5. 在name中结尾添加空字符,结束。

下面的代码是使用原始方法和getline()方法的比较:

复制代码
#include <iostream> using namespace std; int main()
{ const 
        		

网友评论