2017-01-18 29 views
-2
system("ping www.google.com > pingresult.txt") 

Из этого кода может строка "ping www.google.com" быть взята из std::string переменной? Например:используя переменную строку свистеть и сохранить файл в C++

string ipAddress; 

cout << "Enter the ip address: "; 
cin >> ipAddress; 

string ip = "ping" + ipAddress; 
**system ("ip > pingresult.txt");** //error here 
sytem("exit"); 
+0

Что ошибка? – edtheprogrammerguy

ответ

0

ip не является командованием оболочки. Я предполагаю, что вы считали, что строка "ip" в вызове system будет неявно заменена на строку ip в вашей программе; это не работает.

Вы можете поместить строку всей команды в ip затем использовать метод .c_str(), чтобы преобразовать строку в const char * массив, который system ожидает:

ip += " > pingresult.txt"; 
system(ip.c_str()); 
0

Вы должны сначала создать полную команду в std::string, а затем передать его как const char * к функции system:

string ipAddress; 

cout << "Enter the ip address: "; 
cin >> ipAddress; 

string cmd = "ping " + ipAddress + " > pingresult.txt"; 
system (cmd.c_str()); // pass a const char * 
//system("exit"); this is a no-op spawning a new shell to only execute exit... 
+0

Ну, теперь я понял это Спасибо большое! – Zihaan

 Смежные вопросы

  • Нет связанных вопросов^_^