Как сохранить текст из консоли в строку в C (платформа Windows) - PullRequest
1 голос
/ 22 января 2012

В настоящее время я создаю консольное приложение для школьного проекта, и мне действительно нужна эта функция для моего приложения.

Как сохранить весь текст из консоли в строку на C (платформа Windows)?

Например:

Если я использовал функцию system("dir"), она выведет на консоль и выведет список всех подкаталогов и файлов в каталоге.И я хочу, чтобы он был сохранен в строке для последующего использования.

Ответы [ 2 ]

1 голос
/ 22 января 2012

Использование функция popen ():

http://pubs.opengroup.org/onlinepubs/009604499/functions/popen.html

Функция popen () должна выполнить команду, указанную в строковой команде.Он должен создать канал между вызывающей программой и исполняемой командой и должен вернуть указатель на поток, который можно использовать для чтения или записи в канал.

# include ...

FILE *fp;
int status;
char path[PATH_MAX];


fp = popen("ls *", "r");
if (fp == NULL)
    /* Handle error */;


while (fgets(path, PATH_MAX, fp) != NULL
    printf("%s", path);

Это работает в Linux.Так что я думаю, что это также может работать в Windows.

1 голос
/ 22 января 2012

Вы можете использовать popen() вместо system():

#include <stdio.h>
#include <limits.h>

int main()
{
    FILE *fp;
    char path[PATH_MAX];

    fp = popen("DIR", "r");
    if (fp == NULL)
    {
        /* Handle error */
    }

    while (fgets(path, PATH_MAX, fp) != NULL)
    {
        printf("%s", path);
    }

    pclose(fp);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...