关于#c语言#的问题:用fgets和popen函数应该怎么做

第一个图是原文,第二张图是要达到的效果,用fgets和popen函数应该怎么做

img

img

基于Monster 组和GPT的调写:
用fgets和popen函数来获取路由表信息。

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

#define MAX_LINE_LENGTH 1024

int main() {
    FILE* fp = popen("route", "r"); // 执行route命令并读取输出
    if (!fp) {
        perror("popen failed");
        exit(EXIT_FAILURE);
    }

    char line[MAX_LINE_LENGTH];
    int count = 0;
    while (fgets(line, MAX_LINE_LENGTH, fp)) {
        if (count++ == 0) { // 跳过第一行表头
            continue;
        }

        char* net[3];
        net[0] = strtok(line, " ");
        net[1] = strtok(NULL, " ");
        net[2] = strtok(NULL, " ");

        printf("Net[0]:%s\n", net[0]);
        printf("Net[1]:%s\n", net[1]);
        printf("Net[2]:%s", net[2]);
    }

    pclose(fp); // 关闭文件指针
    return 0;
}



小魔女参考了bing和GPT部分内容调写:
使用fgets和popen函数可以实现从一个文件或者管道中读取数据的功能。fgets函数可以从一个文件中读取一行数据,而popen函数可以从一个管道中读取数据。

fgets函数的使用方法:

char *fgets(char *str, int num, FILE *stream);

其中str为字符串,num为字符串的最大长度,stream为文件指针,用来指定要读取的文件。

popen函数的使用方法:

FILE *popen(const char *command, const char *type);

其中command为要执行的命令,type为指定是从管道中读取数据(“r”)还是写入数据(“w”)。

使用fgets和popen函数可以实现从文件或者管道中读取数据的功能,但是需要注意的是,fgets函数只能从文件中读取数据,而popen函数只能从管道中读取数据,不能同时使用。
回答不易,记得采纳呀。