Как отключить экранирование обратной косой черты при сохранении строки в файл в Matlab? - PullRequest
0 голосов
/ 11 января 2019

Ни одна из следующих строк не записывает "a \ b" в файл

fid = fopen('myfile.txt','w'); fprintf(fid, 'a\b'); fclose(fid);

fid = fopen('myfile.txt','wb'); fprintf(fid, 'a\b'); fclose(fid);

Возможно, Matlab экранирует обратную косую черту во время сохранения в файл.

Как отключить эту «функцию»?

Строка должна оставаться без изменений, т. Е. fprintf(fid, 'a\\b') не является решением, length('a\b')==3 должно быть true.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Другой альтернативой является использование fwrite:

fwrite(fid,'a\b','uchar');

Если вы используете режим 'char', строка будет кодироваться по-разному в зависимости от того, как был открыт файл (например, кодировка UTF).

0 голосов
/ 11 января 2019

Вы можете использовать символы преобразования в fprintf, т.е. %s в данном случае

fid = fopen('myfile.txt','w'); fprintf(fid, '%s', 'a\b'); fclose(fid);

Ваше состояние length('a\b')==3 не нарушается так, если я не ошибаюсь

...