C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ getline()

cin是一个对象,用于接收来自用户的输入,但不允许多行输入。要接受多行,我们使用getline()函数。它是在 头文件中定义的预定义函数,用于从输入流中接受行或字符串,直到遇到定界字符为止。

getline()函数的语法:

表示函数的方法有两种:
声明的第一种方法是传递三个参数。
istream& getline( istream& is, string& str, char delim );
上面的语法包含三个参数,即 is,str 和 delim 。
位置
is: 它是istream类的对象,用于定义从何处读取输入流。
str: 这是一个存储字符串的字符串对象。
delim: 是定界字符。
返回值
此函数返回输入流对象,该对象将作为参数传递给该函数。
第二种声明方法是传递两个参数。
istream& getline( istream& is, string& str );
上面的语法包含两个参数,即 is 和 str 。此语法几乎与上述语法相似;唯一的区别是它没有任何定界字符。
在哪里,
is: 定义从哪里读取输入流的istream类。
str: 是存储字符串的字符串对象。
返回值
此函数还返回输入流,该输入流作为参数传递给该函数。
让我们通过一个示例来理解。
首先,我们将看一个示例,其中我们在不使用getline()函数的情况下接受用户输入。
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
string name; // variable declaration
std::cout << "Enter your name :" << std::endl;
cin>>name;
cout<<"\nHello "<<name;
return 0;
}
在上面的代码中,我们使用语句 cin >> name 接受用户输入,即,我们没有使用 getline()函数。
输出
Enter your name : 
John Miller 
Hello John
在上面的输出中,我们将名称" John Miller"作为用户输入,但仅显示" John"。因此,我们得出的结论是,cin在遇到空格字符时不会考虑该字符。
让我们使用getline()函数解决上述问题。
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
string name; // variable declaration.
std::cout << "Enter your name :" << std::endl;
getline(cin,name); // implementing a getline() function
cout<<"\nHello "<<name;
return 0;}
在上面的代码中,即使遇到空格字符,我们也使用了 getline()函数来接受字符。
输出
Enter your name : 
John Miller 
Hello John Miller
在上面的输出中,我们可以看到同时显示了单词John和Miller,这意味着getline()函数还将空格字符之后的字符也考虑在内。
当我们不想在空格后读取字符时,请使用以下代码:
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
string profile; // variable declaration
std::cout << "Enter your profile :" << std::endl;
getline(cin,profile,' '); // implementing getline() function with a delimiting character.
cout<<"\nProfile is :"<<profile;
}
在上面的代码中,我们使用getline()函数获取用户输入,但是这次我们还在第三个参数中添加了定界字符('')。在这里,定界字符是空格字符,表示将不考虑空格后出现的字符。
输出
Enter your profile : 
Software Developer 
Profile is: Software 

Getline字符数组

我们也可以为字符数组定义getline()函数,但是其语法与前一个函数不同。
语法
istream& getline(char* , int size);
在上面的语法中,有两个参数;一个是 char *,另一个是 size 。
其中,
char *: 是指向数组的字符指针。
size: 它用作定义数组大小的定界符,表示输入不能越过这个大小。
让我们通过一个例子来理解。
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char fruits[50]; // array declaration
cout<< "Enter your favorite fruit: ";
cin.getline(fruits, 50); // implementing getline() function
std::cout << "\nYour favorite fruit is :"<<fruits << std::endl;
return 0;
}
输出
Enter your favorite fruit: Watermelon 
Your favorite fruit is: Watermelon 

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4