如何包含getline
How do I include getline?
这是我的代码:
#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::string
s的阵列。所有的string[]
阵列都应该是单个std::string
s,例如:
#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个字符组成的单个字符串。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- Seg Fault Issue C++ (file IO / getline)
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 使用mongocxx驱动程序时包含头文件问题
- 如何在h文件中包含.o对象文件
- 在混合代码库中将C转换为C++时出现许多包含错误
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- Python中的for循环与C++有何不同
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- 为什么您需要C++头文件的包含保护
- 无法在UE4中包含BP类到CPP类
- 为什么我可以在不链接任何额外库的情况下包含 sys/*.h
- 只有当输入文件确实包含要读取的另一个值时,我才能让getline(variable,n)运行
- 为什么 std::getline 会覆盖包含文件名的字符数组