如何包含getline

How do I include getline?

本文关键字:getline 何包含      更新时间:2024-09-23

这是我的代码:

#include <iostream>
#include <istream>
#include <iomanip>
#include <cstring>
#include <string>
using namespace std;
int main()
{
string firstName[20];
string lastName[20];
string fullName[40];
string friendsName;
cout << "Enter your first name: ";
getline(cin, fullName);
return 0;
}

它一直告诉我,我不包括我需要包括的东西来拥有getline

std::string是一个可变长度的字符容器。声明它时不需要指定它的最大大小,当然也不需要使用[]语法。

string firstName[20];是一个由20个C++字符串组成的数组。

char firstName[20];是一个由20个字符组成的数组,可以看作是一个C风格的字符串。

std::getline()希望填充单个std::string,而不是std::strings的阵列。所有的string[]阵列都应该是单个std::strings,例如:

#include <iostream>
#include <string>
using namespace std;
int main()
{
string firstName;
string lastName;
string fullName;
cout << "Enter your first name: ";
getline(cin, firstName);
cout << "Enter your last name: ";
getline(cin, lastName);
fullName = firstName + " " + lastName;
cout << "Welcome " << fullName << endl;
return 0;
}

您将C样式字符串与std::string混淆了。

// C-style
char str[40];
// std::string
std::string str;

此:

string fullName[40];

是由40个字符串组成的数组,而不是由40个字符组成的单个字符串。