char *crypt( char *in_pszTxtToCrypt ) { // en esperant ke la fonction est ok... int iNmbChar = comptechar( ); char szCrypto[ 255 ]; char *pszCrypt = ( char * ) malloc ( strlen( in_pszTxtToCrypt ) + 1 ); for ( int i = 0; i < 255; i++ ) szCrypto[ i ] = 0 + i; strcpy( pszCrypt, in_pszTxtToCrypt ); for( int j = 0; j <= iNmbChar; i++ ) { if ( j > 255 ) pszCrypt[ j ] = pszCrypt[ j ] + szCrypto[ j - 255 ]; else pszCrypt[ j ] = pszCrypt[ j ] + szCrypto[ j ]; } return pszCrypt }
le header file : /*class*/ /*- "hearder.h" -*/ #include <stdio.h> #include #include <stdlib.h> #include <string> using namespace std; class fichier { //VARIABLES protected: char file[15]; //nom fichier char *fileout; //pointeur sur fichier de sortie (crypté ou décrypté) FILE *FICHIER; //pointeur fichier d'ouverture FILE *FICHIEROUT;//pointeur sur fileout char C[65]; // caractère lue dans le fichier int NTOT; //nombre total de char int i; //var pour la boucle de cryptage incrémentation int j; //var d'écriture et compar avec NTOT char operation[65]; //le char de sorti cryptage ou decryptage char ope2[65]; char txt[65]; //METHODES public: void init1(); //init, saisie nom fichier et open en read void initC(); //init, Cryptage et open en write void initD(); // init Décryptage et open write void chara(); //retourne le nombre de char et stock les char dans Var "char C" void boucleC(); //boucle de cryptage void fermeture1(); // effectue un fclose pour fermer le fichier de traitement FICHIER void fermeture2(); //effectue un fclose pour le fichier de sortie FICHIEROUT void credits(); }; /************************* INIT1()**************************/ /***********************************************************/ void fichier::init1() //Permet la saisie du nom de fichier voulu et l'ouvre { do{ printf("Saisir le nom du fichier a traiter : "); scanf("%s", file); //saisie du nom du fichier FICHIER=fopen(file, "r"); //effectue un read du fichier //Test ouverture du fichier if(!FICHIER) printf("\aErreur : IMPOSSIBLE D'OUVRIR " "le fichier : %s.\n", file); } while(!FICHIER); } /************************* INITC()**************************/ /***********************************************************/ void fichier::initC() //cryptage { fileout="crypte.txt"; //génération du fichier de sortie crypte.txt do{ printf("Creation du fichier de sortie ...\n\n"); printf("Il se situe dans le meme répertoire\n\n"); printf("que le fichier source.\n\n"); //créer fichier de sorti FICHIEROUT=fopen(fileout, "w"); //ouverture du fichier de sorti en écriture do{ //cryptage dans la var txt for(j=0; j<NTOT; j++) { txt[j]=C[j]+operation[j]; } } while(j<NTOT); for(j=0; j<NTOT; j++) { cout<<txt[j]; } } while(!FICHIER); fprintf(fileout,txt); //manque écrire dans le put1 de fichier } /************************* INITD()**************************/ /***********************************************************/ void fichier::initD() { fileout="decrypte.txt"; //création du fichier de sortie decrypte.txt do{ printf("Creation du fichier de sortie ...\n"); printf("Il se situe dans le meme repertoire\n"); printf("que le fichier source.\n"); //créer le fichier de sorti FICHIEROUT=fopen(fileout, "a+"); //ouverture de fileout en écriture do{ //decryptage dans txt for(j=0; j<NTOT; j++) { txt[j]=C[j]-operation[j]; } } while(j<NTOT); //manque écrire dans le putain de fichier } while(!FICHIEROUT); } /************************* chara()**************************/ /***********************************************************/ void fichier::chara() { //compter les chars while(!feof(FICHIER)) { C[65]=fgetc(FICHIER); //les chars sont stockés dans C if(!feof(FICHIER)) { NTOT++; //incrémentation de 1 //compte les chars } } printf("Le fichier contient %d ", NTOT); printf(" mots\n"); } /************************* boucleC()************************/ /***********************************************************/ void fichier::boucleC() //initialisation boucle de cryptage { for (i=0; i<NTOT; i++) { operation[i]=operation[i]+(65+i); } } /************************* fermeture1()*********************/ /***********************************************************/ void fichier::fermeture1() //fermeture du fichier à traiter { fclose(FICHIER); } /************************* fermeture2()*********************/ /***********************************************************/ void fichier::fermeture2() //fermeture du fichier de sortie { fclose(FICHIEROUT); } /***********************************************************/ /***********************************************************/ void fichier::credits() { printf(" - Credit - \n"); printf("Realise par Sanchez Damien\n"); printf("pour la société Periscope Creation\n\n"); printf("----------------------------------------------\n\n"); printf(" - Aide - \n"); printf("Le fichier a crypter ou decrypter doit\n"); printf("ce situer dans le meme repertoire que le\n"); printf("celui de l'application.\n\n"); printf("Le fichier de sortie se nommera selon l'action\n"); printf("effectue 'crypte.txt' ou 'decrypte.txt'\n"); } ----------------- le *.cpp /* APPLICATION CRYPTO - OBJET */ /*- APP-Crypto.cpp -*/ #include "hearder.h" // appel du fichier hearder.h fichier FICHIER; //déclaration de FICHIER de type class fichier void main() { //VARS int num; //Sélection du menu int men; //MENU cout<<" ****************************************\n"; cout<<" * *\n"; cout<<" * BIENVENUE *\n"; cout<<" * *\n"; cout<<" * 1. Crypter un texte *\n"; cout<<" * 2. Decrypter un texte *\n"; cout<<" * 3. Credits | Aide *\n"; cout<<" * 4. Quitter *\n"; cout<<" * *\n"; cout<<" ****************************************\n"; cout<<endl; cout<<"Saisir le numero de l'action a effectuer : "; cin>>num; switch(num) { case 1: FICHIER.init1(); FICHIER.chara(); FICHIER.fermeture1(); FICHIER.boucleC(); FICHIER.initC(); FICHIER.fermeture2(); break; case 2: FICHIER.init1(); FICHIER.chara(); FICHIER.fermeture1(); FICHIER.initD(); FICHIER.fermeture2(); break; case 3: FICHIER.credits(); printf("\n"); printf("Revenir au menu principal ? : "); cin>>men; switch(men) { case 1: main(); break; case 2: //quitter break; } break; case 4: //quitter break; } //FIN MENU }
ofstream FichierSortie("C:\\TEST.TXT"); if(!FIchierSortie) { printf("Impossible ouvrir fichier IN"); return 1; } FichierSortie<<"taux=\n"<<20.6; FichierSortie.close();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questiondo{ printf("Saisir le nom du fichier a traiter : "); scanf("%s", file); //saisie du nom du fichier FICHIER=fopen(file, "r"); //effectue un read du fichier //Test ouverture du fichier if(!FICHIER) printf("\aErreur : IMPOSSIBLE D'OUVRIR " "le fichier : %s.\n", file); } while(!FICHIER);