IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme avec char


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut Probleme avec char
    J'ai fait ce programme, mais lorsque je le compile, j'obtiens une erreur dans les boucles FOR. Pourriez-vous m'aider s.v.p.?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    //Programme qui encrypte/décrypte n’importe quel type de fichier à l’aide d’une clé de 128 bits 
    //(en utilisant l’opérateur OU EXCLUSIF binaire.)
     
    #include "stdafx.h"
    #include <string>
    #include <fstream>
    #include <iostream>
    using namespace std;
     
     
    void main()
    {
    	char tabCles[] = "s&kLh±8y.éA$md;O";		//La clé de 16 octets
    	int intNbCar=0;	//Initialisation du nombre des caracteres contenu dans le text a encrypte/décrypte
    	string strNomFichier;
    	cout<<"Veuillez entrez le nom du fichier: ";
    	getline(cin,strNomFichier,'\n');
     
    	ifstream entree;
    	entree.open(strNomFichier.c_str(), ios::in|ios::binary);
    	if(!entree.is_open()){
     
    		//Fichier non ouvert
    		cout<<endl;
    		cout<<"Impossible d'ouvrir le fichier "<<strNomFichier<<" en lecture."<<endl;
    		cout<<"Veuillez verifier l'accessibilite de ce fichier et relancer l'application."<<endl;
    		cout<<endl;
    	}
    	else{	
    	//Pour trouver le nombre de caracteres du fichier	
    		entree.seekg (0, ios::end);
    		intNbCar = entree.tellg();
    		entree.seekg (0, ios::beg);
    	//Pour pouvoir avoir le contenu du fichier dans la variable: contenuFichier
    		char* contenuFichier;
    		contenuFichier = new char [intNbCar];
    		entree.read(contenuFichier, intNbCar);
     
    		for(int i=0; i<intNbCar; i++){
    			for(int j=0; j<16; j++){
    				contenuFichier[16*i+j]^=tabCles[j];
    			}
    		}
    		entree.close();			//Nous n'avons plus besoin du fichier en lecture
    								//Le contenu du fichier est mainteant dans la variable contenuFichier
     
    		ofstream sortie;
    		sortie.open(strNomFichier.c_str(), ios::out|ios::binary);
     
    		if(!sortie.is_open()){
    			//Fichier non ouvert
    			cout<<endl;
    			cout<<"Impossible d'ouvrir le fichier " <<strNomFichier<<" en ecriture."<<endl;
    			cout<<"Veuillez verifier l'accessibilite de ce fichier et relancer l'application."<<endl;
    			cout<<endl;
    		}
    		else{
    			sortie.write(contenuFichier, intNbCar);
    			sortie.close();		//Nous n'avons plus besoin du fichier en ecriture
    		}
    		delete[] contenuFichier;//Pour liberer la memoire
    	}
    }

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Salut,

    Bien que tu ne sois pas précis sur la description de ton problème, je pense que tu es confronté à un dépassement de tableau.

    En effet, ton tableau contenuFichier est de taille intNbCar et dans ta boucle tu autorise l'index 16*i+j, qui peut aller jusqu'à 16*intNbCar+15 si on prend les valeurs maximum.

    Essaye d'être tout de même plus précis sur la description de ton problème.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut
    Merci beaucoup Spout, tu as bien interpreté le problème, j'ai changé la dimension du contenuFichier est maintenant tout fonctionne bien. Merci encore une fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Integration] Probleme avec Char Encoding
    Par nicdo77 dans le forum Spring
    Réponses: 6
    Dernier message: 15/01/2008, 10h48
  2. char* => CString probleme avec les accents
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 26/06/2007, 15h40
  3. [TP] Problème avec les intervalles de char
    Par Petrucci dans le forum Turbo Pascal
    Réponses: 29
    Dernier message: 11/11/2006, 22h19
  4. Probleme avec les char
    Par king67 dans le forum C
    Réponses: 11
    Dernier message: 10/11/2006, 23h15
  5. Réponses: 7
    Dernier message: 06/11/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo