2016-03-05 3 views
0

Целью этой части кода является запуск команды CMD в Windows, которая может быть установлена ​​пользователем (например, cd путь).
Речь идет не только о перемещении по каталогам, что было бы намного проще с использованием чистого C++.
Я написал это, и ключ находится в системе («cd% s», path); но я не могу понять, как это работаетВыполнение команды изменения CMD с использованием C++

#include <iostream> 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    string path; 
    cout << "Path: "; 
    cin >> path; 
    system("cd %s", path); 
    return 0; 
} 
+0

'system (" cd% s ", path);' 'system()' не работает как 'printf()'. –

+0

Я знаю, вот почему я спрашиваю, есть ли способ сделать это – Enzo

+0

Для 'cd' нет, нет способа. –

ответ

0

Сначала сохраните «cd» в строке std ::. После этого просто используйте std :: string :: append, чтобы добавить путь, который пользователь вводит в консоль. Тогда просто позвоните system(pathVar);

+1

2 вещи: вы должны заметить, что ['system()'] (http://en.cppreference.com/w/cpp/utility/program/system) не принимает параметр 'std :: string'. С 'cd' вызов' system() 'не имеет никакого эффекта. –

+0

@ Kenneth Clark: Я пробовал это, и я получаю ошибку: невозможно преобразовать 'std :: string {aka std :: basic_string }' to 'const char *' для аргумента '1' to 'int system (const char *) ' – Enzo

1

std::string имеет функцию в c_str() член, который возвращает char*, указывающий на текст, так что он может быть использован в условиях, которые принимают char* вместо std::string.

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