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;
}