Zero binaire en C ( URGENT SVP )

Fermé
safir - 7 déc. 2004 à 11:15
 safir - 7 déc. 2004 à 13:44
Bonjour,
Comment remplacer un zéro binaire par espace dans un fichier ?
J'essaye de nettoyer un fichier en entré sensé contenir un zéro binaire mais je ne sais pas comment le representer.
Voilà le petit bout de programme :

main()
{
..;
...;
/*boucle principale*/
while ( ((c=getc(stdin)) != EOF))
{
if (strcmp(c,"ICI ZERO BINAIRE")==0)
{
strcpy(c," ");
}
if( opt_out_file )
fprintf(out_file,"%c",c);
else
fprintf(stderr,"%c",c);

}
return 0;
}

Merci beaucoup
A voir également:

8 réponses

Salut Safir,

remplaces:

if (strcmp(c,"ICI ZERO BINAIRE")==0)

par:

if (c=='\0')
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
7 déc. 2004 à 11:39
zero est le seul chiffre qu'aucune base ne peut interdire
à part peut être les chiffres romains.
zéro s'exprime 0
dans :
 if (strcmp(c,"ICI ZERO BINAIRE")==0) 

c n'a pas été déclaré, il est donc impossible de connaitre son type.
si tu le compare à une chaine de plusieurs caractères, alors
que tu lui attribue un fgetc( ) il va y avoir une incompatibilité.
c'est ou char ou pointeur sur char, et là ni l'un ni l'autre ne fonctionneront. les fprintf semblent indiquer que c'est un char
dans ce cas, le strcmp ne fonctionnera pas, à remplacer par if(!c)
cordialement
¤
0
Merci toto.
Ca me donne une segmentation fault à l'execution. je rappelle que je déclare c en char c'est à dire : char c;
0
Désolé Blurk, le segmentation fault était pa
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
7 déc. 2004 à 11:49
le strcpy va provoquer un segmentation fault si c a été déclaré comme char
¤
0
Désolé Blurk, le segmentation fault était par réponse à toto.
le !c semble marcher. Il faut donc que je test sur le bon fichier.

Merci à tous et à toutes.
0
Justement ça donne une segmentation fault sur un fichier contenant un zéro binaire.
Qu'est ce qu'il faut utiliser alors à la place du strcpy ??
Merci encore une fois.
0
Ok, j'ai trouvé.
Il faut faire c=' ';
Merci beaucoup
0