我对其他语言的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;
}
}
它不允许我使用函数inputrecv。它在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)
{
...
}
编辑:这里还有一些其他错误以及其他评论。第一,函数应该指定返回类型和参数类型。此外,在使用字符串类型之前,您需要CCD_ 1。
首先声明函数,并使用正确的函数原型,这里没有输入类型,没有返回类型。。。以下示例,
#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;
}