[英]simple c++ input function
我是来自其他语言的c ++的新手,并在示例中看这段代码看起来应该可以工作
#include <iostream>
using namespace std;
main()
{
string input = "";
cout << "in: ";
getline(cin, input);
input_recv(input);
}
input_recv(input)
{
if (input == "hello"){
cout << "derp" << endl;
}
}
它不会让我使用函数input_recv。 它在我的IDE中给了我几个错误。 一个未声明为“ input_recv”的对象(首先使用此功能)。 基本上我想为此做的是使它使用函数来响应输入。
编辑:
#include <iostream>
#include <string>
using namespace std;
void input_recv(string);
int main()
{
while (1 == 1){
string input = "";
cout << "in: ";
getline(cin, input);
input_recv(input);
cin.get();
}
}
void input_recv(string input){
if (input == "hello"){
cout << "derp" << endl;
}
}
谢谢
C ++要求在使用函数之前先声明该函数,因此,如果将input_recv定义移到主函数之上,它将起作用。 否则,您可以按原样保留程序,并在main上方添加前向声明,如下所示:
void input_recv(string);
int main()
{
...
}
void input_recv(string input)
{
...
}
编辑:这里还有一些其他错误以及指出的其他注释。 一,函数应具有返回类型和指定的参数类型。 另外,在使用字符串类型之前,您需要#include <string>
。
首先声明函数,并使用正确的函数原型,此处没有输入类型,没有返回类型...下面的示例,
#include <iostream>
#include <string>
void input_recv(const std::string& input);
int main()
{
std::string input = "";
std::cout << "in: ";
std::getline(std::cin, input);
input_recv(input);
return 0;
}
void input_recv(const std::string& input)
{
if (input == "hello"){
cout << "derp" << endl;
}
}
C ++是一种强类型的语言。 您必须使用显式类型声明变量和函数:
// forward declare your function
void input_recv(std::string input);
// alternatively
void input_recv_better(const std::string& input);
int main()
{
std::string input;
std::cout << "In: ";
std::getline(std::cin, input);
input_recv(input);
input_recv_better(input);
return 0;
}
void input_recv(std::string input)
{
if (input == "hello")
{
std::cout << "derp" << std::endl;
}
}
void input_recv_better(const std::string& input)
{
if (input == "hello")
{
std::cout << "derp!" << std::endl;
}
}
此代码段肯定存在一些错误,我将全部纠正它们,以便您观察到差异:
#include <iostream>
using namespace std;
void input_recv(string input);
int main()
{
string input = "";
cout << "in: ";
getline(cin, input);
input_recv(input);
}
void input_recv(string input)
{
if (input == "hello"){
cout << "derp" << endl;
}
}
我在函数中添加了返回类型,在参数中添加了数据类型,并对input_recv函数进行了前向声明,以便主函数知道它的存在。
在尝试通过某种形式的标准培训来学习不良实践之前,您肯定会想读一本书,例如C ++ Primer(针对C ++ 11标准修订的最新版本)。
#include <iostream>
using namespace std;
void input_recv(string input)
{
if (input == "hello"){
cout << "derp" << endl;
}
}
int main()
{
string input = "";
cout << "in: ";
getline(cin, input);
input_recv(input);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.