getline函数怎么在C++中使用-创新互联

这篇文章给大家介绍getline函数怎么在C++中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联主营永康网站建设的网络公司,主营网站建设方案,app软件定制开发,永康h5小程序开发搭建,永康网站营销推广欢迎永康等地区企业咨询

虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。

当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。以下面的语句为例:


cin >> namel;

可以输入 "Mark" 或 "Twain",但不能输入 "Mark Twain",因为 cin 不能输入包含嵌入空格的字符串。下面程序演示了这个问题:


// This program illustrates a problem that can occur if
// cin is used to read character data into a string object.
#include 
#include  // Header file needed to use string objects
using namespace std;
int main()
{
 string name;
 string city;
 cout << "Please enter your name: ";
 cin >> name;
 cout << "Enter the city you live in: ";
 cin >> city;
 cout << "Hello, " << name << endl;
 cout << "You live in " << city << endl;
 return 0;
}

程序输出结果:
Please enter your name: John Doe
Enter the city you live in: Hello, John
You live in Doe

请注意,在这个示例中,用户根本没有机会输入 city 城市名。因为在第一个输入语句中,当 cin 读取到 John 和 Doe 之间的空格时,它就会停止阅读,只存储 John 作为 name 的值。在第二个输入语句中, cin 使用键盘缓冲区中找到的剩余字符,并存储 Doe 作为 city 的值。

为了解决这个问题,可以使用一个叫做 getline 的 C++ 函数。此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。

getline 函数如下所示:


getline(cin, inputLine);

其中 cin 是正在读取的输入流,而 inputLine 是接收输入字符串的 string 变量的名称。下面的程序演示了 getline 函数的应用:


// This program illustrates using the getline function
//to read character data into a string object.
#include 
#include  // Header file needed to use string objects
using namespace std;
int main()
{
 string name;
 string city;
 cout << "Please enter your name: ";
 getline(cin, name);
 cout << "Enter the city you live in: ";
 getline(cin, city);
 cout << "Hello, " << name << endl;
 cout << "You live in " << city << endl;
 return 0;
}

程序输出结果:
Please enter your name: John Doe
Enter the city you live in: Chicago
Hello, John Doe
You live in Chicago

关于getline函数怎么在C++中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享名称:getline函数怎么在C++中使用-创新互联
浏览地址:http://ybzwz.com/article/cdodei.html