Bonjour,
J'aimerai récuperer les codes ascii hexadécimaux d'un texte de longueur inconnue.
Etant débutante en C, je ne sais pas comment m'y prendre.
Si vous avez des idées, faites m'en part !
Merci !
Bonjour,
J'aimerai récuperer les codes ascii hexadécimaux d'un texte de longueur inconnue.
Etant débutante en C, je ne sais pas comment m'y prendre.
Si vous avez des idées, faites m'en part !
Merci !
Je dirais lire le texte caractère par caractère (fopen(), fgetc() en boucle, fclose()), ainsi tu auras le code ASCII de chaque caractère. Et ensuite, afficher ce code ASCII sous forme hexadécimale avec un printf() qui va bien.
Donc, typiquement un algo de ce genre:
Code algo : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 fopen() SI fopen() a réussi BOUCLE: fgetc() SI fgetc() a retourné EOF sortir de la boucle printf() fclose()
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
tu peut utiliser la fonction printf() fprintf() pour afficher le code HEX du test, en utilisant le "%X" dans la chaîne formater.
"La créativité est faites d'attention et de respect pour les petits faits de la vie."
Il n'y a pas de "codes hexadécimaux". Toute donnée informatique est formée d'une combinaison plus ou moins large de bits.
Les caractères n'échappent pas à la règle et sont codés généralement sur 8-bit, c'est à dire avec des valeurs comprises entre 0000 0000 et 1111 1111 en binaire. En C, on peut choisir de représenter cette combinaison de bits en octal (base 8), décimal (base 10) ou hexadécimal (base 16), mais il s'agit toujours de la même valeur. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int main (void) { int c = 'A'; printf ("'%c' = %o(base 8) %d(base 10) %x(base 16)\n", c, c, c, c); return 0; }Ensuite, pour lire un fichier texte par caractères, la forme canonique est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 'A' = 101(base 8) 65(base 10) 41(base 16) Press ENTER to continue.
Evidemment, au préalable, le fichier a été correctement ouvert avec fopen() et "r", et il est ensuite fermé avec fclose().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 { int c; while ((c = fgetc(fp)) != EOF) { /* traitement de c */ }
Pas de Wi-Fi à la maison : CPL
Merci, ca marche !
Par contre quand je veux ecrire un mot dans le fichier ca marche, mais si je veux mettre un texte, il me met que le premier mot.
Je ne dois sans doute pas utiliser le bon % !
fprintf(f,"%s",text);
text étant un texte avec plusieurs mots et des espaces...
Je pense que tu as un problème de lecture du fichier. Je rappelle que la fonction de lecture d'une ligne de texte est fgets()...
http://emmanuel-delahaye.developpez....tes.htm#saisie
http://emmanuel-delahaye.developpez....s.htm#fichiers
Montre ton code.
Pas de Wi-Fi à la maison : CPL
Voila mon code (avec un fputs pour mettre dans le fichier le "text"):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 FILE *f; char NAME_FILE[30], text[1000]; printf("Enter the name of the file: "); scanf("%s", NAME_FILE); f= fopen(NAME_FILE, "w"); printf("Enter your text : "); scanf("%s", text); fputs(text,f); fclose(f);
Pas de Wi-Fi à la maison : CPL
Merci pour vos conseils !! ca fonctionne !!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager