我是其他语言的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;
}
}
感谢
答案 0 :(得分:6)
C ++要求在使用函数之前声明函数,因此如果将input_recv定义移到main函数之上,它将起作用。否则,您可以按照原样保留程序,并在main上面添加一个前向声明,如下所示:
void input_recv(string);
int main()
{
...
}
void input_recv(string input)
{
...
}
编辑:
这里还有一些其他错误以及其他评论指出。一,函数应该具有指定的返回类型和参数类型。此外,在使用字符串类型之前,您需要
#include <string>
。
答案 1 :(得分:0)
首先声明函数,并使用正确的函数原型,这里没有输入类型,没有返回类型...下面的例子,
#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;
}
}
答案 2 :(得分:0)
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;
}
}
答案 3 :(得分:0)
这个片段肯定存在一些问题,我会纠正它们,以便您可以观察到它们之间的区别:
#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 函数的前向声明添加,以便main函数知道它存在。
在学习不良习惯之前,你一定要拿起像C ++ Primer(C ++ 11标准修订的最新版本)之类的书,试图放弃某种标准培训。
答案 4 :(得分:0)
#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;
}