Je suis en train de créer un fichier texte avec le contenu d'un tableau de cellules. Voici un MWE. Lorsque j'utilise fprintf
sans l'argument de fichier (pour imprimer simplement dans la fenêtre de commande, par exemple, fprintf(['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
), le code fonctionne très bien. Toutefois, lorsque j'ouvre un fichier avec fopen
et que j'essaie d'écrire la même chose, le double retour arrière (\b\b
) ne fonctionne pas.' b' pour produire le retour arrière ne fonctionne pas dans fprintf en fichier txt (MATLAB)
MWE:
A = num2cell(rand(3,3));
fid = fopen('test.txt','w');
fprintf(fid,['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
Ce que je reçois dans la fenêtre de commande:
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 \\
Ce que je reçois dans le fichier 'test.txt':
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 & \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 & \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 & \\
Et lors du collage le contenu de 'test.txt' à cette question, plutôt que de s'afficher exactement comme ils apparaissent dans le fichier .txt, certaines cases sont apparues là où le dos les allures auraient dû être appliquées (figure ci-dessous). Comment puis-je faire fonctionner les backspaces et supprimer &
dans le fichier .txt?
Si le contenu de 'A' est un nombre à virgule flottante, vous devez utiliser'% f' au lieu de '% s' – rahnema1
@ rahnema1 Cela ne résout pas le problème. – Rodrigues
[connexes] (https://stackoverflow.com/questions/43299376/writing-a-backspace-in-a-file/43299424). Il écrit le code ASCII de retour arrière dans le fichier. – rahnema1