Supprimer un caractère lors de la lecture d'un .txt
Bonjour,
J'ai un problème avec le code ci-dessous. *
Je souhaite lire un fichier, et le réécrire en le modifiant un peu (en vue d'un scanf) dans un autre fichier. Toutes mes modifications fonctionnent. Cependant, j'aimerai aussi séparer mon "rls/H=-x" en "rls/H=" et "-x" (cf: fichier lu). Mais je ne peux pas faire un if comme pour les autres, car le caractère 'H' est présent à d'autres endroits de mon fichier texte.
Savez vous comment j'pourrais m'y prendre? Parce que là je suis bien bloqué.
J'ai essayé de modifier en changeant les caractères '/' et 'H' en 'H' et ' ' (compteur, et dès que j'atteins le numéro de caractère de '/', j'opère la modif), ça marche, mais comme la suite de mon fichier change, les numéros de caractère sont modifiés.
Fichier lu:
! Vloc_Rloc
$steps 1503 time= 0.1878750D-01
!-----------------------------------------------------------------------
$icdan SPSPx 2
cdbdy numbr cdtac numbr CDVER behav anbdy numbr antac numbr sttus
RBDY3 9 SPHER 1 sico5 RBDY3 28 SPHER 1 slide 28
rls/H 0.2168742D+00 rlt/H 0.1461062D+01 rln/H 0.1477070D+02
vls = 0.6763135D-01 vlt = 0.4556264D+00 vln = 0.5219771D+01
gTT = 0.2634442D-04
s(1)= 0.3946493D+00 s(2)=-0.8960255D+00 s(3)= 0.2034461D+00
t(1)= 0.1030792D+00 t(2)= 0.2631953D+00 t(3)= 0.9592200D+00
n(1)= 0.9130316D+00 n(2)= 0.3575844D+00 n(3)=-0.1962314D+00
coo1=-0.1611689D-01 coo2=-0.1002224D-01 coo3= 0.1773654D-01
$icdan SPSPx 1
cdbdy numbr cdtac numbr CDVER behav anbdy numbr antac numbr sttus
RBDY3 13 SPHER 1 sico5 RBDY3 61 SPHER 1 slide 61
rls/H-0.7878895D+00 rlt/H-0.2505081D+01 rln/H 0.2626062D+02
vls = 0.1985293D+01 vlt = 0.6312207D+01 vln = 0.9280158D+01
gTT = 0.4225549D-04
s(1)=-0.7080113D+00 s(2)=-0.5811294D+00 s(3)=-0.4012588D+00
t(1)=-0.3202700D+00 t(2)= 0.7706269D+00 t(3)=-0.5509639D+00
n(1)=-0.6294022D+00 n(2)= 0.2615775D+00 n(3)= 0.7317309D+00
coo1= 0.6835382D-02 coo2=-0.2954009D-01 coo3= 0.1610224D-01
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include <stdio.h>
#include <stdlib.h>
#define SORTIE "essai.dat"
#include <dirent.h>
int main(void)
{
FILE *traitement=fopen(SORTIE,"w");
FILE *vlocrloc=fopen("Vloc_Rloc.OUT.3"/*fname*/,"r");
int c;
while ((c = fgetc(vlocrloc)) != EOF)
{
if (c == '!')
{
c = ' ';
}
else
if (c == '=')
{
c = ' ';
}
else
if (c == 'D')
{
c = 'e';
}
putchar(c);
putc(c,traitement);
}
fclose(vlocrloc);
fclose(traitement);
return(EXIT_SUCCESS);
} |