關於c++ system內可否用變數去改變...

各位大大們好

小弟我無聊寫一個執行ping 的 c++程式

我想要把某變數的值帶入 system("ping (ip) ");內

且我要scanf的變數也不知要用那種型態..

不知可否麻煩大大們協助解決呢.....

程式碼如下

---------------------------------------------------------------------------------------

#include

#include

int main (void)

{

int ip;// ip變數儲存位置,不知是使用int型態還是使用浮點數型態..

printf("---------PING IP---------\n");

printf("請輸入您要ping的IP: ");

scanf("%d",&ip); //<<不知輸入ip位置是否使用int整數?ex:127.0.0.1 system("ping %d",&ip); //<<不知可否利用變數去增加ping 後面的數值 printf("-------------------------");

system("pause");

return 0;

}

---------------------------------------------------------------------------------------

Orz.........

謝謝大大

1 個解答

評分
  • 其威
    Lv 7
    10 年前
    最佳解答

    IPv4 的位置實際上是一個 32 位元整數. 但是你讀入的時候不能直接讀...

    試試:

    int ip[4] = { 0 };

    scanf("%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3]);

    至於送給 system() 的部份, 請用 sprintf() 或 snprintf():

    // 最長 "ping 255.255.255.255"

    char buf[4 + 1 + (3 + 1 + 3 + 1 + 3 + 1 + 3) + 1] = { '\0' };

    sprintf(buf, "ping %d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);

    system(buf);

還有問題?馬上發問,尋求解答。