How to print \ in fprintf?
30 ビュー (過去 30 日間)
古いコメントを表示
I have to print a command to a file,
lib_def = '.lib C:\Users\vaidy\Documents\LTspiceXVII\lib\cmp\standard.mos\n'
Opamp_lib = '.lib UniversalOpamps2.sub\n'
File = fopen('oscillator_8.cir','w');
fprintf(File,sprintf(lib_def));
fprintf(File,Opamp_lib);
fclose(File);
I'm using the above commands, but it doesn't print the same to the file.
Output:
.lib C:.lib UniversalOpamps2.sub
0 件のコメント
採用された回答
Walter Roberson
2020 年 7 月 21 日
lib_def = '.lib C:\Users\vaidy\Documents\LTspiceXVII\lib\cmp\standard.mos' %no \n here!
fprintf(File,'%s\n', lib_def);
0 件のコメント
その他の回答 (2 件)
Star Strider
2020 年 7 月 21 日
You need to ‘escape’ the backslant (\) with a preceding backslant (\\) in order to print it as you want to.
Perhaps this will do what you want:
lib_def = '.lib C:\\Users\\vaidy\\Documents\\LTspiceXVII\\lib\\cmp\\standard.mos\n'
I am assuming here that you want to retain the ‘\n’ as a newline character.
.
0 件のコメント
Cris LaPierre
2020 年 7 月 21 日
You have not specified the formatspec input argument. Even with that, special characters like a backslash need to be handled differently. See the Text Before or After Formatting Operators section in the linked documentation page. Here, that means use "\\" when you wnat "\". Below is an example that prints to the screen, allowing you to verify the behavior.
lib_def = '.lib C:\\Users\\vaidy\\Documents\\LTspiceXVII\\lib\\cmp\\standard.mos\n'
fprintf(sprintf('%s',lib_def));
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!