C++: экранирование двойных кавычек и двойного обратного слеша

Модератор: Модераторы разделов

Ответить
Аватара пользователя
ArkanJR
Сообщения: 1166
Статус: Профан

C++: экранирование двойных кавычек и двойного обратного слеша

Сообщение ArkanJR »

Имеется следующий код:

Код: Выделить всё

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main()
{
string a = "\"список\"";
string b = "\"\\\"";
cout << a << endl;
cout << b << endl;
return 0;
}


При запуске полученного бинарника на экран выводится:
"список"
"\"


Почему выводится один обратный слеш в кавычках, а не два?
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C++: экранирование двойных кавычек и двойного обратного слеша

Сообщение Bizdelnick »

Первый обратный слеш экранирует идущую за ним кавычку. Остаётся только кавычка.
Второй обратный слеш экранирует третий обратный слеш. Остаётся один обратный слеш.
Четвёртый обратный слеш экранирует кавычку. Остаётся кавычка.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
ArkanJR
Сообщения: 1166
Статус: Профан

Re: C++: экранирование двойных кавычек и двойного обратного слеша

Сообщение ArkanJR »

Bizdelnick писал(а):
10.06.2015 20:07
Первый обратный слеш экранирует идущую за ним кавычку. Остаётся только кавычка.
Второй обратный слеш экранирует третий обратный слеш. Остаётся один обратный слеш.
Четвёртый обратный слеш экранирует кавычку. Остаётся кавычка.

Супер! Понятней некуда! :thumbs:
10% — это 0,1.
© Bizdelnick
Спасибо сказали:
Ответить