Как избежать точки с запятой в строке C ++ - PullRequest
2 голосов
/ 29 мая 2010
std:string str("text1\; text2\;");

Почему VS2005 говорит: ; unrecognized character escape sequence.

Пожалуйста, сообщите, спасибо.

Ответы [ 4 ]

13 голосов
/ 29 мая 2010

Потому что это неправильно:

std:string str("text1\; text2\;");

Это правильно:

std::string str("text1; text2;");

ДВА колона после стандартного.

5 голосов
/ 29 мая 2010

Нет необходимости ставить точку с запятой

3 голосов
/ 29 мая 2010

Точки с запятой имеют абсолютно нет значение в строках C; они просто нормальные персонажи. Если вам нужно поставить обратную косую черту в строке, потому что это требуется позже, то обратная косая черта требует обратной косой черты впереди.

std::string str("text1\\; text2\\;");

Это потому, что \; не является распознанной escape-последовательностью в C ++; компилятор справедливо хочет знать, о чем вы говорите, когда вставляете это.

3 голосов
/ 29 мая 2010

Просто поставьте точку с запятой без обратной косой черты:

std::string str("text1; text2;");
...