Не могу указать префикс пути к файлу в программе - PullRequest
0 голосов
/ 07 сентября 2010

В моей программе я пытаюсь создать имя файла с указанием пути к определенной папке, где хранятся мои данные.У меня есть что-то похожее на это:

string directoryPrefix = "C:\Input data\";
string baseFileName = "somefile.bin";
string fileName = directoryPrefix + index + " " + baseFileName;

Однако компилятор продолжает повторять, что в конце первой строки мне не хватает точки с запятой.Как мне правильно настроить это, чтобы оно работало?

Спасибо

Ответы [ 4 ]

2 голосов
/ 07 сентября 2010

\ - это специальный символ

string directoryPrefix = "C:\Input data\"; у вас есть специальные команды в строке \I и \", поэтому ваша строка не заканчивается

удвоить \, чтобы избежать escape-символа

string directoryPrefix = "C:\\Input data\\";

2 голосов
/ 07 сентября 2010

Вам нужно добавить escape-символы к каждому '\', чтобы они были приняты в строке.

string directoryPrefix = "C:\\Input data\\";

Посетите это , чтобы узнать немного подробнее.

1 голос
/ 07 сентября 2010

Как отмечалось * \ - это специальный escape-символ, используемый в строковом или символьном литерале. У вас тоже есть выбор. Либо избегайте использования косой черты (то есть двойной косой черты), либо переходите на обратную косую черту, которая также работает на всех других ОС, что упрощает перенос кода в будущем.

string directoryPrefix = "C:\\Input data\\";
string directoryPrefix = "C:/Input data/";

Или лучшая альтернатива - перейти на платформенный нетрадиционный способ представления файловой системы.

0 голосов
/ 07 сентября 2010

В паре ответов уже упоминалось удвоение обратной косой черты.Вместо этого можно использовать прямые косые черты:

std::string directoryPrefix = "C:/Input data/";

Даже если Windows не принимает прямую косую черту в командной строке, она будет принимать их при использовании в программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...