Если моя строка содержит:
a="abd\\aa\[1\]\\"
и если я пытаюсь записать его в файл, используя fputs и fprintf, он записывает в файл следующее:
fputs
fprintf
"abd\aa[1]\"
Я хочу, чтобы "abd\\aa\[1\]\\" было записано в файл. Как мне это сделать?
"abd\\aa\[1\]\\"
Вы должны сбежать от вашего \, вот так:
\
printf("abd\\a[1]\\");
Или printf напечатает \a, который является символом BEL.
printf
\a
BEL
Символ \ является специальным символом. Попробуйте это так:
a = "abd\\aa[1]\\";
EDIT
Если вы хотите, чтобы "abd\\\\aa\\[1\\]\\\\" было записано в файл, вы должны удвоить каждый обратный слеш:
"abd\\\\aa\\[1\\]\\\\"
a = "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\";
Используйте double \, потому что \ является escape-символом:
a = "abd\\aa[1]\\"
Когда вы помещаете '\' в строку, следующий символ будет игнорироваться.Если вы поставите '\' перед '\', функции секунд будут игнорироваться и печататься.
'\'
Я хочу, чтобы "abd\\\\aa\\[1\\]\\\\" было записано в файл.
Просто удвойте количество обратных косых черт.
fprintf(fp, "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\" );