Форум программистов, компьютерный форум CyberForum.ru

Stdlib system - C++

Восстановить пароль Регистрация
 
ClrScr
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 4
10.04.2014, 10:51     Stdlib system #1
Здравствуйте!
Вот какая проблема.

функция system("текст") выдает ответ в общий поток ( в Qt в qDebug). А как сделать так что бы была вот такая конструкция?

Text_out = func ("text_in");

p.s. Копаюсь в интернете, пока не могу найти.
p.p.s. вообще идея такая, собрать всю инфу по железу под ОС Linux и выдать что то типо CPUZ.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 10:51     Stdlib system
Посмотрите здесь:

C++ System в Си++
system("del C:\\1"); и system("rmdir C:\\1"); C++
C++ прoблемка с stdlib.h
ПРИШЛИТЕ МНЕ ПОЖАЛУЙСТA ФАЙЛ stdlib.h ДЛЯ VS2006 C++
C++ Ошибка stdlib.h
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2014, 10:58     Stdlib system #2
Цитата Сообщение от ClrScr Посмотреть сообщение
А как сделать так что бы была вот такая конструкция?
Text_out = func ("text_in");
Расшифруйте конструкцию.
ClrScr
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 4
10.04.2014, 11:08  [ТС]     Stdlib system #3
C++
1
2
3
4
string Text_out;
string text_in = "uname -a";
Text_out = func ("text_in"); // system("uname -a");
// Text_out = Linux rofl113 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux
Добавлено через 3 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Расшифруйте конструкцию.
Вообщем хочу что бы результат команды был выходной переменной у функции.

Добавлено через 1 минуту
Вот так правильно. (Правка что то совсем не работает, весь сайт чет виснит)
C++
1
2
3
4
string Text_out;
string text_in = "uname -a";
Text_out = func (text_in); // system("uname -a");
// Text_out = Linux rofl113 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2014, 11:31     Stdlib system #4
Цитата Сообщение от ClrScr Посмотреть сообщение
system("текст") выдает ответ в общий поток
Можно в файл сбросить (system("uname -a >> file.txt")), а из файла в строку прочитать.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
    string text_in = "uname -a >> file.txt";
    system(text_in.c_str());
    ifstream fin("file.txt");
    if (!fin)
        cout << "Error!" << endl;
    else
    {
        string Text_out;
        getline(fin, Text_out);
        cout << Text_out << endl;
    }
ClrScr
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 4
10.04.2014, 11:31  [ТС]     Stdlib system #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Можно в файл сбросить (system("uname -a >> file.txt")), а из файла в строку прочитать.
А по другому никак?
Может есть другая функция?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2014, 11:40     Stdlib system #6
Цитата Сообщение от ClrScr Посмотреть сообщение
А по другому никак?
Может есть другая функция?
Может и есть, но мне неизвестна. А так не подходит чем-то?
ClrScr
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 4
10.04.2014, 11:44  [ТС]     Stdlib system #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Может и есть, но мне неизвестна. А так не подходит чем-то?
Да все здорово, но хотел сделать без костылей (запись и чтение файла).
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.04.2014, 12:18     Stdlib system #8
Уточнение: чтобы каждый раз новый файл создавал (а то так добавлять будет): "uname -a > file.txt"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 12:44     Stdlib system
Еще ссылки по теме:

stdlib.h - quicksort C++
C++ Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h>

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.04.2014, 12:44     Stdlib system #9
Цитата Сообщение от ClrScr Посмотреть сообщение
хотел сделать без костылей
То, что Вы пишете аргументом функции system() есть эквивалент вызова этого аргумента в командном процессоре (консоле). Перенаправить вывод в данном случае можно лишь меняя текст аргумента, т.е. добавляя всевозможные >, >>, | или, если у команды, которая выполняется есть специальный режим в котором она пишет куда-то иначе.
Другой способ перенаправления ввода/вывода некоторой программы, это запуск ее через fork/exec (unix) или CreateProcess (Win) и завязывание ввода/вывода через пайпы. Для винды пример тут.
Yandex
Объявления
10.04.2014, 12:44     Stdlib system
Ответ Создать тему
Опции темы

Текущее время: 14:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru