Qubc
@Qubc
Ненавижу полисемию.

Как написать путь файла с пробелами в функции system в C?

#include
void main(){
system("gcc C:/Folder/My Folder/example.c" );
}
Так - не работает.
Если убрать пробел из имени папки (MyFolder) - работает.
Как это можно исправить?
  • Вопрос задан
  • 1256 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Заэкранировать кавыки.
system("gcc \"C:/Folder/My Folder/example.c\"" );

Точно так же экранируется и обратный слэш, если вдруг потребуется.
system("gcc \"C:\\Folder\\My Folder\\example.c\"" );


Экранирование символов — механизм, имеющийся в текстовых языках и протоколах. Он служит, чтобы символы, которые считаются служебными и имеют особое значение, этого значения лишить и объявить «просто символами». Нам нужно двойное экранирование: для ОС (строка с пробелами закавычивается) и для Си (перед кавычкой слэш).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ocelot
@Ocelot
system("gcc \"C:/Folder/My Folder/example.c\"" );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы