erreur d'execution

erreur d'execution - C++ - Programmation

Marsh Posté le 12-03-2012 à 21:19:53    

Bonsoir,
j'ai en train d'executer le cryptage RSA sur c++ j'obtiens l'erreur suivante:
 
 
1>------ Début de la génération : Projet : code1, Configuration : Debug Win32 ------
1>Compilation en cours...
1>code1.cpp
1>.\code1.cpp(1) : warning C4627: '#include <stdlib.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
1>        Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
1>.\code1.cpp(2) : warning C4627: '#include <stdio.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
1>        Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
1>.\code1.cpp(3) : warning C4627: '#include <time.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
1>        Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
1>.\code1.cpp(4) : warning C4627: '#include <math.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
1>        Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
1>.\code1.cpp(155) : fatal error C1010: fin de fichier inattendue lors de la recherche d'un en-tête précompilé. N'auriez-vous pas oublié d'ajouter '#include "stdafx.h"' à votre source ?
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\ines hammami\Mes documents\Visual Studio 2008\Projects\code1\code1\Debug\BuildLog.htm"
1>code1 - 1 erreur(s), 4 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
 
 
 
je suis dans un projet:"aplication console win32"  
pourquoi cette erreur et comment l'éviter pour que le code ça marche?  
merci  

Reply

Marsh Posté le 12-03-2012 à 21:19:53   

Reply

Marsh Posté le 13-03-2012 à 08:20:57    

fais voir ton code


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 13-03-2012 à 11:13:46    

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
 
int myRandom();
int isPremier(int);
 
/**
 main()
*/
int main(void) {
   int _p, _q, _n, _indEuler;
   int _e = 0;
   int _d = 0;
   int _flag = 0;
   
   do {
                _p = myRandom();
                _q = myRandom();
   } while((isPremier(_p) == 0) || (isPremier(_q) == 0) );
   
   _n = _p * _q;
   _indEuler = (_p - 1) * (_q - 1);
   
        while( !_flag ) {
                if( isPremier(_e) ) {
                        if( (_n % _e == 0) && (_e < _n) ) {
                                _e++;
                        } else {
                                // on a trouve l'exposant publique
                                // on sort du while
                                _flag = 1;
                        }
                } else {
                        _e++;
                }
        }
       
        _flag = 0;
        // on cherche l'exposant prive
        while( !_flag ) {
                if( ( _e * _d - 1) % _n == 0 ) {
                        // on a trouve
                        _flag = 1;
                } else
                        _d++;
        }
   
        printf("p = %d\n", _p);
        printf("q = %d\n", _q);
        printf("n = %d\n", _n);
        //printf("Indice Euler = %d\n", _indEuler);
        printf("e = %d\n", _e);
        printf("d = %d\n", _d);
 
        return (0);
}
 
/**
        myRandom()
*/
int myRandom(void)
{
   static int first = 0;
   
   if (first == 0) {
      srand (time (NULL));
      first = 1;
   }
   return ( rand () % 10 );
}
 
/**
        isPremier(int)
*/
int isPremier(int _entier) {
  static int _premiers[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,
                        43,47,53,59,61,67,71,73,79,83,89,97};
  int i, n;
  double d;
 
 
  /* 1 n'est pas premier */
  if (_entier == 1)
  {
    return 0;
  }
 
  n = sizeof (_premiers) / sizeof (*_premiers);
 
  /* D'abord on regarde si n est divisible par les nombres premiers dans le tableau */
  for (i = 0; i < n; i++) {
        if (_entier == _premiers[i]) {
      return 1;
    }
        if (_entier % _premiers[i] == 0) {
      return 0;
        }
  }
 
  /* Ensuite, on doit regarder a partir du dernier element du tableau+2 jusqu'a sqrt(_entier)... */
  d = sqrt (_entier) + 0.5; /* Le 0.5 permet de tester si c'est un carre parfait... */
  i = _premiers[i-1] + 2;
 
  while (i < d) {
    if (_entier % i == 0) {
      return 0;
    }
    i += 2;
  }
 
  return 1;      
}
 
/**
 
*/
int pgcd(long _a, long _b)
{
    long _dividende = labs(_a); /* le _dividende contient la valeur absolue de a */
    long _diviseur = labs(_b);  /* le _diviseur contient la valeur absolue de b  */
    long _quotient;
    long _reste;
 
    int _fin = 0;
 
    /*
     * on ne calcule le pgcd de deux nombres que s'ils sont diffŽrents de zŽro
     */
    if(_a != 0 && _b != 0) {
       while(!_fin) {
           /* On applique la division euclidienne */
           _reste = _dividende % _diviseur;
           _quotient = (_dividende - _reste) / _diviseur;
 
           /* Si le _reste est diffŽrent de 0, on continue l'algorithme */
           if(_reste != 0) {
               _dividende = _diviseur;
               _diviseur = _reste;
           }
           else {
               _fin = 1;
           }
       }
    }
    else {
       /* Erreur ... */
       _diviseur = 0;
    }
 
       
    return _diviseur;
}

Reply

Marsh Posté le 13-03-2012 à 11:53:34    

Regarde au niveau de la configuration de ton ide, sous linux avec gcc, ça marche.

Code :
  1. moi@pc:~/test$ g++ main.cpp
  2. moi@pc:~/test$ ./a.out
  3. p = 7
  4. q = 5
  5. n = 35
  6. e = 2
  7. d = 18


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

Marsh Posté le 13-03-2012 à 12:47:37    

Bonjour,
tu compile surement avec Visual c++.
Je te suggère de refaire un projet vide en désactivant les entêtes précompilés et en rajoutant manuellement le fichier contenant ton code ci dessus.


---------------
Seul Google le sait...
Reply

Marsh Posté le 13-03-2012 à 16:39:25    

C'est du C++ ça ? :sweat:


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 13-03-2012 à 19:40:46    

Terminapor a écrit :

C'est du C++ ça ? :sweat:


Ah non. J'ai utilisé g++ par habitude  :sweat:


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

Marsh Posté le 14-03-2012 à 00:31:44    

Non mais je parlais du code posté [:ddr555]
 
C'est du C là :spamafote:


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 14-03-2012 à 18:37:48    

Ils ont beau améliorer les messages d'erreur des compilateurs :

Hnayn5291 a écrit :


N'auriez-vous pas oublié d'ajouter '#include "stdafx.h"' à votre source ?


 
Visiblement, ça ne suffit pas :o


---------------
Ta peau de nacre noir, la courbe de ton cul
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed