c/c++语言开发共享C++ getline函数用法详解

虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个

虽然可以使用 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 <iostream>  #include <string> // 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 <iostream>  #include <string> // 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

到此这篇关于c++ getline函数用法详解的文章就介绍到这了,更多相关c++ getline函数内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/596087.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐