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 :

Problème avec fstream


Sujet :

C++

  1. #1
    Membre à l'essai Avatar de Ziarrow
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 16
    Points
    16
    Par défaut Problème avec fstream
    Bonjour, j'ai un problème pour ouvrir un fichier en écriture... le programme m'envoie au else et m'affiche "Ouverture impossible ...", j'ai essayer avec une image ".png", un fichier ".txt", même résultat..

    De plus le prog n'attends pas que j’appuie sur une touche et quitte.

    Est-ce que j'emploie mal "cin.ignore" ???

    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
     
     
    ...
     
    char filesourc[80];
    char *buffer;
    long taille;
     
    ...
     
    cout << "\n Nom du fichier (avec l\'extension) : ";
    cin  >> filesourc;
     
     ...      
     
    fstream fsourc(filesourc, ios::in|ios::binary);       // Ouvrir en écriture
     
    if (fsourc.good())                                    // teste l'existence du fichier
    {
        pos = fsourc.tellg();                             // sauvegarder la position courante
        fsourc.seekg(0 , ios_base::end );                 // se placer en fin de fichier
        taille = fsourc.tellg() ;                         // récupérer la nouvelle position = la taille du fichier
        fsourc.seekg(pos, ios_base::beg );                // restaurer la position initiale du fichier
     
        buffer = new char [taille];                       // alloue la memoire de la taille du fichier
     
        fsourc.read (buffer, taille);                     // met tout le fichier dans le buffer
        fsourc.close();                                   // ferme le fichier source
    }
    else
    {
        fsourc.close();                                   // ferme le fichier source
        cout << "\n Ouverture impossible de " << filesourc << " en \202criture. \n ";
        cout << "Appuyez sur entr\202e pour revenir menu.";
        cin.ignore( numeric_limits<streamsize>::max(), '\n' );
        return 0;
    }

  2. #2
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    a tout hasard, ni a-t-il pas d'espace dans le nom de ton fichier?
    Homer J. Simpson


  3. #3
    Membre à l'essai Avatar de Ziarrow
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Non, pas d'espace mais un point, par exemple :


    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
    ...
     
    cout << "\n\t\t Nom du fichier \205 d\202crypter (avec l\'extension) : ";
    cin  >> filesourc;
     
    cout << "\n\t\t Nom du fichier destination (avec l\'extension) : ";
    cin  >> filedest;
     
     ...
     
    else
    {
     
        cout << "\n Ouverture impossible de " << filesourc << " en \202criture. " << endl;
        cout << "\n destination : " << filedest << endl; 
        cout << "\n Appuyez sur entr\202e pour revenir menu.";
        cin.ignore( numeric_limits<streamsize>::max(), '\n' );
        return 0;
    }
    Résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Ouverture impossible de main.txt en écriture.
     
    destination : crypt.txt
     
    Appuyez sur entrée pour revenir au menu.
    Le fichier source existe déjà.....il est dans le même répertoire que le programme.

    Je cherche juste à l'ouvrir pour le récupérer dans un buffer...

    A moins qu'il faille spécifier le répertoire au programme.

  4. #4
    Membre à l'essai Avatar de Ziarrow
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Ok, j'ai essayer sans lancer le programme par le run de code::blocks, en passant manuellement dans le rep et ça fonctionne...
    (erreur de débutant )

    Connaissez vous le réglage à faire pour que cela marche par le run de code::blocks ?

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

Discussions similaires

  1. Problème de copie avec fstream
    Par Nekkro dans le forum C++
    Réponses: 24
    Dernier message: 11/05/2012, 11h22
  2. Problème avec le header <fstream.h>
    Par micflor dans le forum Débuter
    Réponses: 7
    Dernier message: 18/12/2009, 12h06
  3. [C++] problèmes avec fstream
    Par Ulrar dans le forum C++
    Réponses: 22
    Dernier message: 07/04/2008, 16h57
  4. Problème avec fstream
    Par cach dans le forum SL & STL
    Réponses: 17
    Dernier message: 27/02/2005, 12h28
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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