2017-07-03 8 views
-3

MacでTerminalと通信するにはどうしたらいいですか? 私は、ユーザーからラズベリーパイのIPまたはIDを要求し、その入力を使用してラズベリーパイに接続したいと考えています。 以下のコードを試しましたが、動作しません。「システムに一致する関数呼び出しがありません」と表示されます。terminalコマンドをsystem()で使用する方法

cout << "What is the Raspberry Pi's IP address or ID? "; 
string raspiID; 
cin >> raspiID; 
cout << endl; 
string command = "ssh [email protected]" + raspiID + ""; 
system(command); 
+0

「システム()」は使用しないでください...セキュリティ上の問題などなく、もっと良い方法があります。 –

+1

なぜコマンドの最後に '' ''がありますか? – Barmar

+0

さて、私は 'system(" ssh pi @ "+ raspiID)'がうまく動作しなかったのを確認するために試していました。 – Neuranium

答えて

0

2つのことは、あなたがsystem()を使用している方法と間違っている:

  1. #include <stdlib.h>または#include <cstdlib>を追加します。
  2. system()は、タイプconst char*のパラメータを受け取ります。したがって、std::stringを直接この関数に渡すことはできません。これはあなたの質問に表示されているエラーの主な原因です。代わりに

    system(command.c_str()); 
    

    を使用してください。サイドノートとして

は:どうやらあなたは、あなたのコード内で using namespace std;文を持っています。なぜそうしてはいけないのかは、 Q&Aをお読みください。

+1

1 stdlib.hまたはcstdlibが見つからず、他のヘッダーが含まれていない場合は、エラー。 2はい。 – user4581301

+0

@ user4581301さて、あなたのOPは主に '#include 'に届かないのですか?これにより異なるエラーメッセージが生成されるという証拠がありますか? – user0042

+0

@ user4581301これは、エラーの主な原因が間違ったパラメータの種類です。 – user0042

関連する問題