首页 技术资料正文

C++getline函数用法详解(python函数)

piaodoo 技术资料 2022-08-26 22:11:16 848 0

C++ getline函数用法详解(python函数)

C++ getline函数用法详解

虽然可以使用 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 DoeEnter the city you live in: Hello, JohnYou live in Doe面包是可数名词吗

请注意,在这个示例中,用户根本没有机会输入 city 城市名。因为在第一个输入语句中,当 cin 读取到 John 和 Doe 之间的空格时,它就会停止阅读,只存储 John 作为 name 的值。在第二个输入语句中, cin 使用键盘缓冲区中找到的剩余字符,并存储 Doe 作为 city 的值。为了解决这个问题,可以使用一个叫做的 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 DoeEnter the city you live in: ChicagoHello, John DoeYou live in Chicago

【扩展阅读】

除了 getline() 全局函数外,C++ 还提供了一个同名的 getline() 成员函数,定义在 istream 类中,它也可以读取一行数据。这两个名称、功能都相同的函数,它们有什么区别,实际开发中应该用哪个,感兴趣的小伙伴请获取答案。

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/119263.html

搜索