2017-07-03 53 views
-3

如何在Mac上與終端進行通信,以便我可以完成以下任務? 我想向用戶索要樹莓派的IP或ID,然後利用輸入連接到樹莓派。 我試過下面的代碼,但它不起作用,說「沒有匹配的函數調用系統」。如何在系統中使用終端命令()

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

請不要使用'system()'...有很多更好的方法(沒有安全問題和更多)..只要忘記它存在。 –

+1

爲什麼在命令結尾處有'+「」'? – Barmar

+0

那麼,我試圖看看它是否在'system(「ssh pi @」+ raspiID)'不起作用之後工作。 – Neuranium

回答

0

兩件事情是不對的,你正在使用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