C Aide code error

vengeurstrike Messages postés 93 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, dans le but d'une réalisation d'un programme permettent de décrypter des psedo et des pass sous forme : 65_52_14_<>_36_65_14.

#include <stdio.h>
#include <stdlib.h>

int main()
{
char psedo[20] ="";
char pass[20] ="";
char code[200] = "";
int classePsedo = 0;
int classePass = 0;
char partie =0;
int i,e,a;
printf("Enter the code : ");
scanf("%s", code);
i = 0;
e = 0;
a = 0;
while(1)
{
if(code[i]=="_")
{
i++;
classePass=0;
classePsedo=0;
}
else if(code[i]=="<")
{
i++;i++;
partie = 1;
}
else if(code[i]=="/0") i=9999;
else
{
if(partie = 0)
{
while(code[i]!="_"&&code[i]!="<"&&code[i]!=">")
{
switch(classePsedo)
{
case 1 :
psedo[e]*= 10;

case 2 :
psedo[e]*=100;

default :
psedo[e]+= code[i];
}
classePsedo++;
i++;
}
}
else
{
while(code[i]!="_"&&code[i]!="<"&&code[i]!=">")
{
switch(classePass)
{
case 1 :
pass[a]*= 10;

case 2 :
pass[a]*=100;

default :
pass[a]+= code[i];
}
classePass++;
i++;
}
}
}
i++;
}
printf("\n%s___%s", psedo, pass);
system("PAUSE");
return 0;

C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c||In function `main':|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|20|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|26|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|31|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|34|warning: suggest parentheses around assignment used as truth value|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|36|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|36|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|36|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|55|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|55|warning: comparison between pointer and integer|
C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|55|warning: comparison between pointer and integer|
||=== Build finished: 0 errors, 10 warnings ===|

Quand je lance le programme sa me demende le code et sa plante ! help me ! merci de votre aide
Configuration: Window Vista 32bits
Intel core 2 duo E4400
ATI Radeon HD 2400
3GO de RAM

13 réponses

  1. pierre.d51 Messages postés 1635 Statut Contributeur 1 270
     
    Un boulet "savant" qu'il en est un l'est un peu moins !

    ooh.. purée.. on dis "sachant" !
    0
  2. l'inconue
     
    cherche pas mème si tu trouve t'on ordi n'est pas assé puissant pour ce tipe de logiciel
    0
  3. pierre.d51 Messages postés 1635 Statut Contributeur 1 270
     
    Très juste ! De plus, je viens de me rendre compte que nous aidons un pirate... ce que notre charte interdit formellement ! Nous devrions le signaler aux modos..
    0
  4. vengeurstrike Messages postés 93 Statut Membre
     
    non non sa marche très bien
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vengeurstrike Messages postés 93 Statut Membre
     
    un pirate pk ?
    0
  7. pierre.d51 Messages postés 1635 Statut Contributeur 1 270
     
    N'empeche que... ! Nous ne pouvons pas savoir pourquoi tu utilise ce logiciel...
    0
  8. pierre.d51 Messages postés 1635 Statut Contributeur 1 270
     
    "programme permettent de décrypter des psedo et des pass "
    0
  9. vengeurstrike Messages postés 93 Statut Membre
     
    je veut juste faire passer des psedo et des pass par msn ou autre sans risque que quelqu'un les intercepte et s'en serve
    0
  10. vengeurstrike Messages postés 93 Statut Membre
     
    oui mais c'est moi qui ait pense le système de cryptage c'est pur les crypter et que mon correspondant les décrypte
    0
  11. mya1 Messages postés 352 Statut Membre 42
     
    je crois que la bibilothèque de #include<conio.h> t'en manque!!
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Non, ce n'est pas conio.h qui manque. Conio.h c'est lorsque tu utilises des fonctions spécifiques à windows.

      Cdlt
      0
  12. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Pour les autres : Il a bien le droit de se concevoir son propre système de chiffrement...
    Les mots de passe de toute façon sur les systèmes ne sont pas chiffrés mais hacher, donc rien à voir avec son algo.

    Sinon pour vengeurstrike :

    if(code[i]=="_")
    Attention tu compares un char avec une chaîne de caractères ("_"). Pour comparer avec un char, il faut le mettre entre apostrophes (code[i]=='_';)
    De même pour les autres if.

    pass[a]*= 10;
    Attention, à ne pas dépasser la limite maximale d'un char. Tu peux utiliser le modulo pour ça (%).

    code[i]=="/0")
    /0 ? \0 caractère de fin de chaîne plutôt non ? Pareil entre apostrophe.

    J'ai vite fait regarder, il y a sûrement d'autres erreurs, tiens moi au courant ;-))).
    0
  13. vengeurstrike Messages postés 93 Statut Membre
     
    merci je vais modifier sa tout de suie et je te donne le resultat
    0
  14. vengeurstrike Messages postés 93 Statut Membre
     
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char psedo[20] ="";
    char pass[20] ="";
    char code[200] = "";
    int classePsedo = 0;
    int classePass = 0;
    char partie =0;
    int i,e,a;
    printf("Enter the code : ");
    scanf("%s", code);
    i = 0;
    e = 0;
    a = 0;
    while(1)
    {
    if(code[i]=='_')
    {
    i++;
    classePass=0;
    classePsedo=0;
    }
    else if(code[i]=='<')
    {
    i++;i++;
    partie = 1;
    }
    else if(code[i]=='\0') i=9999;
    else
    {
    if(partie = 0)
    {
    while(code[i]!='_'&&code[i]!='<'&&code[i]!='>')
    {
    switch(classePsedo)
    {
    case 1 :
    psedo[e]*= 10;

    case 2 :
    psedo[e]*=100;

    default :
    psedo[e]+= code[i];
    }
    classePsedo++;
    i++;
    }
    }
    else
    {
    while(code[i]!='_'&&code[i]!='<'&&code[i]!='>')
    {
    switch(classePass)
    {
    case 1 :
    pass[a]*= 10;

    case 2 :
    pass[a]*=100;

    default :
    pass[a]+= code[i];
    }
    classePass++;
    i++;
    }
    }
    }
    i++;
    }
    printf("\n%s___%s", psedo, pass);
    system("PAUSE");
    return 0;

    }

    C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c||In function `main':|
    C:\Users\marc\Desktop\Aplications en C\SteamDecrypter\main.c|34|warning: suggest parentheses around assignment used as truth value|
    ||=== Build finished: 0 errors, 1 warnings ===|


    pareil la code plante
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Tu as une autre erreur.
      if(partie = 0) est équivalent à : partie=0; if(0)
      L'opérateur de comparaison en C est le double égal. Le simple égal est réservé à l'affectation.

      Par contre, je n'ai pas regardé en détail ton algorithme. Mais j'ai l'impression qu'il n'est pas très propre et que ça va faire un segmentation fault^^.

      Tiens moi au courant si c'est le cas ;-).
      0