Probleme avec programme de cryptage XOR [C++ 10 lignes inside] - C++ - Programmation
Marsh Posté le 12-12-2003 à 23:51:48
remplace tes char [] par des string
pour lire une ligne : std::getline(cin, str)
quand a tes caracteres foireux tu t'es demandé ce que donne 'a'^'b' ?
Marsh Posté le 12-12-2003 à 23:54:08
hellbilly a écrit : remplace tes char [] par des string |
a part ca si je fait un prog XOR c'est que je sait un minimum comment la fonction opere...
la genre je fait a^b ca me met 500caracteres différents les uns des autres
Marsh Posté le 12-12-2003 à 23:58:06
Mister_K a écrit : |
j'aime ta fonction d'affichage. Affiche plutot caractere par caractere
Marsh Posté le 13-12-2003 à 00:02:37
ReplyMarsh Posté le 13-12-2003 à 00:04:37
Mister_K a écrit : |
Bah si dans ton texte y'a la lettre qui sert de clé, l'affichage s'arrêtera à cet index x^x=0
Marsh Posté le 13-12-2003 à 00:09:24
ahhhhh ok
ok dans ce cas comment je peut faire pour pas que ca me casse mon texte et meme comment je peut faire pour entrer un texte dans le tablo sans que les espaces n'arretent la chaine (jai pas compris le caractere par caractere je doit faire 500 fois cin ?)
Marsh Posté le 13-12-2003 à 00:15:30
getline(cin, tonstring);
Edit pour pas que Taz me frappe : tu peux aussi vérifier le retour de getline() et si ça merde vérifier cin.bad() et cin.eof() pour afir en conséquences..
Marsh Posté le 13-12-2003 à 00:19:18
int main(void)
(void) -> ()
return 0; inutile car implicite
Marsh Posté le 13-12-2003 à 00:28:40
*Syl* a écrit : getline(cin, tonstring); |
heu... du coup pour le "char tablo[500]" je doit mettre autre chose a la place non?
Marsh Posté le 13-12-2003 à 00:32:05
ben tu utilises ta string, re vois pas le problème. si pour faire ton traitement ta string doit absolument faire 500c, et bien tu la bourre
Marsh Posté le 13-12-2003 à 00:41:14
je dois avoir l'air d'un autiste mais,
j'ai mis ca (je decouvre le string )
Code :
|
et au niveau du getline il me met une erreur comme quoi ca "does not match" (pas taper svp)
d'ailleur au nivo de la fonction XOR aussi
edit: g rien dit c bon jai enlevé les [500]
Marsh Posté le 13-12-2003 à 00:42:17
string tablocryptaid[500];
euh vas y c'est quoi pour toi ça ?
Marsh Posté le 13-12-2003 à 00:45:05
Code :
|
bon allez sinon tu vas pas dormir
Marsh Posté le 13-12-2003 à 01:35:00
help! je suis relou mais j'y arrive pas
maintenant le probleme c l'affichage de la resultant de XOR
j'ai ca
Code :
|
et ca me demande les deux variables mais ca n'affiche pas la resultante
idem avec ce que m'a fait Taz...
il doit y avoir un truc special a mettre sur le 'cout' non?
Marsh Posté le 13-12-2003 à 01:38:33
normal, dnas ma version y a pas d'affichage.
t'es sur de savoir ce que fait xor ?
std::cin >> tablo;
std::getline(std::cin, tablo);
ben tu lis 2 fois : une fois un mot, l'autre une ligne
ça affiche rien ?
tablocryptaid[i]=tablo[i] ^ clai;
boum, t'as pas tailler tablocryptaid comme il faut. -> std::string::resize
ensuite, t'es marrant, tablocryptaid est pas affichable puisque 'apères XOR, il contient des caracètres non-imprimables.
tu préfères pas jouer avec ROT13 ?
Marsh Posté le 13-12-2003 à 13:45:30
bah sur ta version j'ai quand meme ajouter des cout et cin << input...
ensuite pour le resizage jsuis pas sur de tout avoir calé
et quand je teste le programme je m'arrange pour XORer des lettres qui tombent bien
bon jvai faire des recherches sur ROT13 sinon je laisse tomber le string et je repart sur le tablo...
Marsh Posté le 13-12-2003 à 13:49:29
1) reste sur les string sinon tu vas dans le mur (en fait t'y était déjà)
2) si ton but c'est de crypter une chaine de caractère (texte humainement lisible), tourne toi vers les trucs à la ROT13, Avocat, signé l'abbé, etc
3) faut se sortir les doigts et lire un peu de documentation.
Marsh Posté le 13-12-2003 à 14:52:50
Mister_K a écrit : |
+1 taz
Oui t'as l'air de maîtriser le sujet en effet...
Marsh Posté le 13-12-2003 à 15:06:30
JagStang a écrit : |
bah desolé mon minimum c'est 1^0=1 1^1=0 0^0=0 et 0^1=1
apres j'ai pas dit que j'etait un mega pro du ou exclusif
Marsh Posté le 13-12-2003 à 16:23:50
Mister_K a écrit : |
Wé bah va réapprendre ton minimum
Marsh Posté le 13-12-2003 à 16:26:29
ReplyMarsh Posté le 13-12-2003 à 16:27:27
c'est bien ce que je disais.... pour info, 0^0=0...
http://www.sciences.ch/htmlfr/anal [...] mboole.php
a+
Marsh Posté le 13-12-2003 à 16:43:13
JagStang a écrit : c'est bien ce que je disais.... pour info, 0^0=0... |
merci j'avais pas vu j'avais pas remarqué que c'etait une faute d'inattention et j'avais pas édité mon message avant que tu ne donne cette reponse
Marsh Posté le 13-12-2003 à 16:51:47
bon a part ca,
je crois que le (dernier) probleme vien du fait que
"tablocryptaid[i]=tablo[i] ^ clai;"
ne fonctionne pas
ca expliquerait pourquoi
cout << tablocryptaid
ne donne rien a la fin
en effet j'ai rajouté
tablocryptaid.resize(500, 'x');
juste avant le cout et ca me met que des 'x' quelle que soit le texte et la clee...
alors que les premiers caracteres avant les x devrais etre le texte crypté (tout ca pour dire que le probleme ne vient donc pas du cout)
Marsh Posté le 13-12-2003 à 16:54:09
...
'a' ^ 'b' tu crois que ça donne quoi ?
Citation : tablocryptaid.resize(500, 'x'); |
ça me parait une bonne définition de ce que fait resize.
Marsh Posté le 13-12-2003 à 17:01:13
Taz a écrit : ...
ça me parait une bonne définition de ce que fait resize. |
ben a^b ca donne un coeur non
ensuite le resize je croyais que c'etait sensé remplir les espaces vides du string
genre 'abc' fait 3 caracteres et si tablocryptaid='abc' alors avec mon resize ca fait 'abcxxxxxxxxx[...]' avec 497 x
c pas ca
Marsh Posté le 13-12-2003 à 17:06:05
Taz a écrit : |
desolé le 'string' je connais que depuis hier
apres ce que j'ai dit sur le resize je l'ais lu plus ou moins là
http://casteyde.christian.free.fr/ [...] ml#AEN5711
Citation : |
j'ai peut-etre mal interprété
Marsh Posté le 13-12-2003 à 17:07:13
conseil du jour: essaie avec toutes les touches de ton clavier jusqu'a obtenir le résultat désiré
Marsh Posté le 13-12-2003 à 17:18:34
Je ne comprends pas comment son truc ne plante pas avec le resize juste avant le cout.
Marsh Posté le 13-12-2003 à 17:19:42
hellbilly a écrit : Je ne comprends pas comment son truc ne plante pas avec le resize juste avant le cout. |
euh c'est quoi le problème ?
Marsh Posté le 13-12-2003 à 17:33:26
ReplyMarsh Posté le 13-12-2003 à 18:09:10
ca yest ca donne plus ou moins quelque chose
Code :
|
je tient a remercier tout ceux qui ne m'ont pas fait perdre mon temps
il reste aussi que je ne peut pas valider séparément la cle et le texte mais c un probleme mineur
Marsh Posté le 13-12-2003 à 18:11:21
ignoble
1) tu ne tiens pas compte des remarque précédente -> main(void)
2) ton programme fais plusieurs erreurs de segmentation
Marsh Posté le 13-12-2003 à 18:14:04
Taz a écrit : ignoble |
je cherche pas un resultat pro
tant que ca fonctionne ca me va (a la base j'y connais rien et je sais meme pas ce qu'est une erreur de segmentation )
Marsh Posté le 13-12-2003 à 18:15:33
Mister_K a écrit : |
mais ça fonctionne pas ta merde
Marsh Posté le 12-12-2003 à 22:54:36
je fait un petit programme de cryptage en ou exclusif et puisque j'y connait pas grand chose au c++ j'y vais doucement
au depart jai fait un prgm qui fait qu'une lettre jai pas eu de prob
mais là je veux pouvoir entrer du texte et j'ai quelques probs
voila la bete:
notez que la cle ne fait qu'un caractere
et pour ecrire un texte pour le moment jai pas trouvé mieu que le tablo (le pb vien peut etre de la) et ce qui est chiant en + c que je peu pas mettre d'espaces
pis bon si y a surement plein de ptits trucs pas coherent...
mais le probleme c'est que soit j'initialise i à 1 dans le 'for' et la 'tablocryptaid' me donne rien
sit je l'initialise a 0 et la 'tablocryptaid' contient nimporte quoi (en genenral quelques bip de ma tour (caracteres foireux ) mais genre je met 500 fois la meme lettre ca me rend 500 lettres differentes alors que XOR devrait rendre la meme)
merci de votre aide (faut vite que je pige ca parce qu'apres je doit essayer de faire un prog qui utilise RSA...)