0

私は他の言語から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でいくつかのエラーが発生します。1 つは宣言されていない `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;
                    }
}

ありがとう

4

5 に答える 5

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;
}
于 2013-09-04T20:46:31.570 に答える
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;
  }
}
于 2013-09-04T20:43:38.587 に答える
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;
    }
}
于 2013-09-04T20:43:44.980 に答える
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関数の前方宣言を追加して、メイン関数がその存在を認識できるようにしました。

ある種の標準的なトレーニングを放棄して悪い習慣を学ぶ前に、C++ Primer (C++11 標準用に改訂された最新版) のような本を手に取ってください。

于 2013-09-04T20:45:21.730 に答える