C ++ новая строка не переводится - PullRequest
2 голосов
/ 20 марта 2010

Прежде всего, я полный новичок в C ++.

Я кодирую что-то с помощью API и хотел бы передать ему текст, содержащий новые строки, и распечатать новые строки на другом конце.

Если я жестко закодирую то, что хочу распечатать, вот так

printInApp("Hello\nWorld");

it делает отдельными строками на другом конце, но если я получаю текст из приложения, используя метод, который возвращает const char, то передаю его прямо в printInApp (который принимает const char аргумент), он выглядит как одна строка.

Почему это так и как я собираюсь это исправить?

1 Ответ

2 голосов
/ 20 марта 2010

Компилятор обрабатывает escape-коды в строковых литералах, а не методы времени выполнения. Вот почему вы можете, например, иметь "char c = '\ n';" поскольку компилятор просто компилирует его как "char c = 10".

Если вы хотите обрабатывать escape-коды в строках, таких как '\' и 'n', как отдельные символы (например, читать как таковые из файла), вам нужно написать (или использовать существующий) строковую функцию, которая находит escape-коды и преобразует их в другие значения, например, преобразует '\', за которым следует 'n', в новую строку (значение ascii 10).

...