4.2.4 每次读取一行字符串输入
每次读取一个单词通常不是最好的选择,例如,假设程序要求用户输入城市名,用户输入New York或Sao Paulo,您希程序读取并存储完整的城市名,而不仅仅是New或Sao.要将整条短语而不是个词作为字符串输入,需要采用另一种字符串读取方法。具体地说,需要采用面向行而不是面向单词的方法,幸运的是,istream 中的类(如cin)提供了些面向行的类成员函数: getine()和get()。这两个函数都取一行输入,直到到达换行符。然而,随后getline()将丢弃换行符,而get()将换行符保留在输入序列中,下面详细介绍它们,首先介绍getline( )。
1.面向行的输入: getline( )
getline( )函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法,可以信用cin.getline().该函数有两个参数。第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数。如果这个参数为20,则函数最多读取19个字符,余下的空间用于存储自动在结尾处添加的空字符。getline( )成员函数在读取指定数目的字符或遇到换行符时停止读取。
例如,假设要使用getline( )将姓名读入到一个包含20个元素的name数组中。可以使用这样的函数调用: