如何在C ++中读取带空格的字符串?
在本章中,我们将学习如何在C++中读取带有空格的完整字符串?
要读取任何类型的值(例如整数,浮点数和字符),我们使用cin,cin是istream类的对象,它告诉编译器从输入设备读取值。
但是,在读取string的情况下,cin不能正常工作。
让我们使用cin读取字符串
#include <iostream> using namespace std; int main(){ char name[100]={0}; //读取名称 cout<<"Enter your name: "; cin>>name; //打印名称 cout<<"Name is: "<<name<<endl; return 0; }
现在,考虑输出-1。在这里,我给“Vanka”(一个没有空格的名字)。
输出-1
Enter your name: Vanka Name is: Vanka
“Vanka”将存储到变量名中并成功打印。
现在,考虑输出-2。在这里,我给“VankaManikanth”(带空格的名字)。
输出-2
Enter your name: Vanka Manikanth Name is: Vanka
在这种情况下,字符串将在找到的空格处终止,只有“Vanka”会存储在变量名中。
现在,如何在C++中读取带空格的字符串?
我们可以使用一个函数getline()
,该函数可以读取字符串,直到找不到enter(返回键)为止。
使用cin.getline()读取带空格字符串
getline()是istream类的成员函数,用于读取带空格的字符串,以下是getline()
函数的以下参数[了解更多有关std::istream::getline的信息]
语法:
istream& getline (char* s, streamsize n );
char*s:存储字符串的字符指针(字符串)
streamsizen:读取字符串的最大字符数
考虑给定的程序
#include <iostream> using namespace std; int main(){ char name[100]={0}; //读取名称 cout<<"Enter your name: "; cin.getline(name,100); //打印名称 cout<<"Name is: "<<name<<endl; return 0; }
考虑给定的输出;在这里,我给“Mr. VankaManikanth”(一个在单词之间包含两个空格的名称)。
输出结果
Enter your name: Mr. Vanka Manikanth Name is: Mr. Vanka Manikanth
在此,完整的名称/字符串“Mr.VankaManikanth”将存储在变量名称中。