你好,我在C ++中的getline()函数方面遇到麻烦。我正在学习C ++课程,而我自己在网上进行的关于该主题的研究并没有带我找到一种解决方案,我并不真正理解他们所说的所有事情,因为这是我班上的第一堂课。任何快速/粗略的帮助/理解将不胜感激,因为我们将在课堂上更全面地介绍该主题。下面是我正在编写的代码。这是一个简单的程序,仅询问用户姓名和地址,然后以正确的邮件格式显示该信息。
#include <iostream>
#include <string>
int main()
{
// Variables for Mailing Addresses
std::string firstName;
std::string lastName;
int houseNum;
std::string streetName;
std::string cityName;
std::string state;
int zipCode;
// Asking for input
std::cout << "What is your First name?: ";
std::cin >> firstName;"\n";
std::cout << "What is your Last name?: ";
std::cin >> lastName;"\n";
std::cout << "What is your House Number?: ";
std::cin >> houseNum;"\n";
std::cout << "What is your Street Name?: ";
std::getline(std::cin,houseNum);
return 0;
}
抛出的错误代码是“没有匹配的函数来调用'getline'”。
嗯,我看到几个主要问题。
您有此行:
std::cin >> firstName;"\n";
第一部分是正确的,但第二部分是错误的。您想要这个:
std::cin >> firstName;
std::cout << "\n" << std::endl;
此外,您还要对先前创建的字符串对象调用getline
。 std::cin
是流类型的对象,而不是字符串。我建议您看看谈论this page的getline
。
getline()
的问题在于,您试图将字符串流分配给int
变量houseNum
,因此出现错误。
没有匹配的函数来调用'getline(std :: istream&,int&)'
也,代码行:
std::cin >> firstName;"\n";
应给您:
警告:声明无效[-Wunused-value]
对于"\n"
启用compiler warnings,它们为您节省了很多时间。