在本文中,我们将讨论 C++ 中的 getline() 函数。这是一个接受单个和多个字符输入的内置函数。
在 C++ 中处理用户输入时,cin 对象允许我们从用户那里获取输入信息。但是当我们尝试打印输出具有多个值的用户输入时,它只返回第一个单词。
发生这种情况是因为 C++ 编译器假定在获取输入时任何空格都会终止程序。即“my name is axiaoxin”只会在注销时返回“my”。
这是一个较好的例子:
#include <iostream>
using namespace std;
int main() {
string bio;
// Information logged to the console
cout << "Tell us about yourself: ";
/* This prompts the user to input a string and I typed in this:
"JavaScript is my favorite language"
*/
cin >> bio;
/* When logging out the bio inputed above, only "JavaScript" was logged out
*/
cout << "Your bio says: " << bio;
// Your bio says: JavaScript
}
在上面的代码中,要求用户输入他们的 bio(个性签名)。他们输入“JavaScript is my favorite language”。但是当 bio 被打印到控制台时,只有输出了“JavaScript”。
接下来,我们将了解如何使用 getline() 函数获取字符串中的其余字符。
C++ getline() 函数示例
在本节中,我们将看到一个使用 getline() 函数的实际示例。
#include <iostream>
using namespace std;
int main() {
string bio;
cout << "Tell us about yourself: ";
getline(cin, bio);
cout << "Your bio says: " << bio;
}
在上面的例子中,我们在 getline() 函数中传入了两个参数:getline(cin, bio);。第一个参数是 cin 对象,第二个是 bio 字符串变量。
运行代码时,系统会提示您输入一些文本。完成后,按回车键查看到输出的是所有的输入文本,而不仅仅是第一个单词。
总结
在本文中,我们讨论了 getline() 函数,它使我们能够从用户输入中获取多个单词。
我们首先看到了当我们从用户那里得到一个包含多个单词的字符串时会发生什么——只返回第一个单词。
然后我们看到了如何使用 getline() 函数从字符串中获取所有字符,该函数有两个参数——cin 对象和字符串变量。
祝您编码愉快!