【问题标题】:Windows ping in C with individual IP address input使用单独的 IP 地址输入在 C 中执行 Windows ping
【发布时间】:2022-11-25 23:44:40
【问题描述】:

我对编程还是比较陌生,并决定用 C 创建一个紧急工具作为 Windows 中一般问题的项目。此外,我想创建一个具有不同问题的菜单,该菜单应该是可选择的。

问题一是例如无法访问服务器/客户端。然后应在 CMD 中触发 ping 和 tracert。但我的挑战是我无法在输入每个查询时获得单独的 IP 地址。结果也应该显示。有人知道吗?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define buffer[BUFFER_SIZE] = { 0 };

int main()
{
    int selection1;

    printf("What is the problem? Type in the appropriate number and press Enter: \n");

    printf("1) Something is unavailable.\n");
    printf("2) Problem 2\n");
    printf("3) Problem 3\n");
    printf("4) Problem 4\n");
    printf("5) Problem 5\n");
    printf("6) Problem 6\n");
    printf("7) Problem 7\n");
    fflush(stdout);
    scanf("%d", &selection1);

    if (selection1 == 1)
    {
 
        fflush(stdout);
        char* pingAdress;
        scanf("%c", &pingAdress)
        system( "ping %c", pingAdress)
        
    }

【问题讨论】:

  • “针对 Windows 中的一般问题的项目”=> 这对我来说是“Powershell”。有兴趣切换语言吗?
  • 首先,pingAdress未初始化.其次,这是一个指针char 而不是一个 char 本身。第三,&amp;pingAdress 是指向类型为char ** 的指针。第四,system 函数不是像snprintf 这样的格式化函数。第五,%c 用于单个字符而不是字符串。第六(或其他)scanf%c 格式将读取全部字符,包括空格(包括先前输入的换行符)。总而言之,您似乎跳过了 C 教科书或课程的一些非常基础的部分。
  • @nick 是的,我知道 powershell 是最好的选择,但我想学习 C :)
  • @SergejWozke:很公平 :) 那么我的建议是:将您的任务分成两部分:(a) 编写一个带有用户选择和一些计算的小型控制台程序(可能是“猜数字”游戏等),以及 (b) 尝试让system() 的东西在“裸”环境中运行。如果两者都按预期工作,请合并它们。
  • @Some programmer dude:看来我那里有很多问题。我只学了两周的语言。您介意向我展示如何正确执行此操作的示例吗?至少我有一个解决方案。尼克:谢谢,我一定会试试的。

标签: c windows cmd


【解决方案1】:

下面是如何执行 ping 用例的示例。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int selection1;

    printf("What is the problem? Type in the appropriate number and press Enter: 
");

    printf("1) Something is unavailable.
");
    fflush(stdout);
    scanf("%d", &selection1);

    if (selection1 == 1)
    {
 
        fflush(stdout);
        char pingAdr[100], pingCmd[100];
        printf("Enter host address: ");
        scanf("%s", pingAdr);
        sprintf(pingCmd, "ping -c 5 %s", pingAdr);
        system(pingCmd);
    }
    return 0;
}

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    相关资源
    最近更新 更多