CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[c++]Problème (encore :p)

-pedrolan-
-pedrolan-
Niveau 7
19 février 2006 à 19:27:53

Bonjour!

Et oui, j´ai encore un problème en C++. :)

Cette fois-ci, j´écris un programme qui crypte un fichier en remplacant chaque caractère par le nombre suivant son code ASCII.
Donc, pour pouvoir compiler, j´ai du faire quelques trucs qui feraient un programme qui n´allait sûrement pas marcher correctement, mais j´ai quand même testé.
Biensûr, cela ne marche pas exactement comme je voudrais.
J´ai réussi à crypter, mais pas à décrypter, je pense à cause d´une conversion de int en char qui devait normalement être faite mais que j´ai enlevée pour pouvoir compiler...

Enfin voici mon code:
http://www.rafb.net/paste/results/61Cdr521.html

L´idée de ce programme m´est venue ce matin, alors que je cherchais un moyen de sauvegarder les données de mes jeux (par exemple les scores) sans que l´utilisateur de ceux-ci puisse y toucher...

Pouvez-vous m´aider svp?

dnob700
dnob700
Niveau 10
19 février 2006 à 22:20:14

je doute que ça compile...
Les : char buf[maxsize]; le compilo doit pas aimer.

Mais à pars ça, le problème vient de ce que tu ne peut pas faire ça avec fstream (ou en tout cas, je ne sais pas le faire, et si c´est possible, ce n´est pas aussi simple).

Car lorsque tu écrit tes fichiers il écrit non pas les octets qui correspondent à tes chiffres, mais le chiffres eux même. Même si c´était des chars, à la lecture, ça foire.
Donc il faut utiliser stdio.h (ou cstdio) avec fopen, fread et fwrite en mode binaire, pour lire les données "binaires" qui toi, t´interesse (tu lis octet par octet ton fichier pour modifier chacun d´eux).

-pedrolan-
-pedrolan-
Niveau 7
20 février 2006 à 11:07:52

Ok alors je vais tester en C avec stdio...

Mais cela compile parfaitement, et mieux le programme marche pour la fonction crypt :ok:

-pedrolan-
-pedrolan-
Niveau 7
20 février 2006 à 11:08:56

Et au fait, pardon de faire deux posts en si peu de temps, mais pourquoi
char buf[maxsize];
n´est pas aimé par le compilateur?

guyver2
guyver2
Niveau 10
20 février 2006 à 15:22:09

mon compilo (gcc) ne dit rien sur
char buf[maxsize];
ton maxsize est un long, peut-etre que ton compilateur prefere les int...

sinon pour j´ai réécris ton code en C avec stdio
la fonction crypte prend chaque caractere d´un fichier passé en parametre et écrit le code ascii du caractere suivant (de la table ascii) dans un fichier crypt.txt.
la fonction decrypte affiche sous forme lisible a l´écran le contenu du fichier crypte.txt (sous forme decryptée)
http://www.rafb.net/paste/results/7fht4v31.html

dnob700
dnob700
Niveau 10
20 février 2006 à 18:45:20

sur maxsize, comme attendue, le compilo me sors :
"error C2057: expected constant expression"
(et dire que je l´ais compilé pour ça) car tu ne peut utiliser que des constantes pour déclarer la taille d´un tableau.

pour ton code guyver, je te conseille d´utiliser "rb" et "wb" partout, plutot que r et w tout seul, car dans le cas contraire, tu peutne pas retrouver exactement le fichier initial (particulièrement, des sauts de lignes peuvent avoir changer de syntaxe).

guyver2
guyver2
Niveau 10
20 février 2006 à 20:32:08

ben justement j´ai mis r et w pour ne pas ignorer les retour a la ligne.
J´ai essayer mon code sur un fichier contenant des retours a la ligne et il me l´a retourner correctement apres un cryptage/decryptage.
Avec rb, le programme ignore les caractere speciaux. C´est bien ça?

dnob700
dnob700
Niveau 10
20 février 2006 à 21:42:49

c´est le contraire. avec r, si il rencontre en retour à la ligne type Unix (0x0D (ou alors 0x0A, je ne me souviens plus)) il va le convertir en retour à la ligne type Windows (0x0D0A) et donc tune retrouveras plus le même message (en tout cas, pas exactement la même chose). Et il y peut y avoir d´autre différence.
En mode binaire, il n´y a pas ça, il te donne un par un, chaque octet du fichier tel quel.

guyver2
guyver2
Niveau 10
20 février 2006 à 21:52:23

ok autant pour moi.

-pedrolan-
-pedrolan-
Niveau 7
27 février 2006 à 17:41:09

Merci beacoup à vous deux :)

-pedrolan-
-pedrolan-
Niveau 7
27 février 2006 à 17:42:37

Arf j´arrive trop tard lol tu peux remettre un paste stp Guyver?
Celui-ci est mort...
(http://www.rafb.net/paste/results/7fht4v31.html)

dnob700
dnob700
Niveau 10
27 février 2006 à 22:10:22

depuis j´ai découvert que tu peut le faire avec fstream : si tu as un objet fichier de type fstream (entrée ou sortie), tu peut faire fichier.read et fichier.write pour faire de la lecture et de l´écriture bianire. Regarde dans l´aide quels sont les paramètres nécessaires.

butagaz
butagaz
Niveau 9
01 mars 2006 à 00:08:49

Penser à initialiser ton fstream avec le bit ios::bin. Je pense pas que ce soit crucial mais ça fait plus propre.

guyver2
guyver2
Niveau 10
06 mars 2006 à 12:26:12

voici le lien remis a jour: http://www.rafb.net/paste/results/VFqm1F62.html
voila.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment