Как запустить команду cmd и получить вывод в строковой переменной? Пример:
string result = ExecuteFunction("ipconfig");
Теперь "результат" содержит:
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
......
Это происходит, не показывая никакого экрана cmd, все из программы. Конечно, платформа Windows.
Вы можете построить трубу:
В Linux:
#include <cstdio>
#include <iostream>
#include <vector>
int main() {
FILE* fp = popen("ifconfig", "r");
if(fp) {
std::vector<char> buffer(4096);
std::size_t n = fread(buffer.data(), 1, buffer.size(), fp);
if(n && n < buffer.size()) {
buffer.data()[n] = 0;
std::cout << buffer.data() << '\n';
}
pclose(fp);
}
}
Для Windows вы можете использовать "_popen" и изменить "ifconfig" на "ipconfig"
Стандартным решением этой проблемы с незапамятных времен является использование перенаправления командной строки для отправки стандартного вывода в текстовый файл, а затем чтение файла в строку.
Вы не предоставили достаточный контекст для ответа на код. В C/C++ вы можете использовать _popen(). В.NET этот ответ может помочь. Перенаправить вывод консоли в текстовое поле в отдельной программе