首页 > 解决方案 > 如何在 C++ 程序中 ping 某个 ip

问题描述

通常我只使用system("ping 8.8.8.8");命令,但我试图将信息存储在变量(IP)中,然后在 c++ 程序中使用系统 ping 该 IP。

这看起来很简单,但是当我尝试执行代码时,它告诉我函数调用中的参数太多。有人可以帮我解决这个问题吗?

ImGui::PushItemWidth(100);
static char IP[64] = ""; ImGui::InputText("PING IP", IP, 64);
ImGui::PopItemWidth();

if (ImGui::Button("ping test")) {
    system("ping ", IP);
}

标签: c++ping

解决方案


system()函数只接受一个参数,由其头文件定义:

int system( const char* command );

它期望 shell 执行完整的命令字符串。

处理这种情况的最简单方法是将"ping"字符串文字和IP变量连接起来。您可以std::string在 C++ 中很容易地使用而不是 char 数组来做到这一点:

#include <iostream>
#include <string>
#include <cstdlib>

int main() {
    std::string IP ("127.0.0.1");
    std::string CMD ("ping " + IP);
    std::system(CMD.c_str());
    return 0;
}

推荐阅读