Source / Exemple :
/* Interception d'un debordement de buffer
lors de la lecture d'un fichier ligne par ligne */
#include <iostream>
#include <fstream>
#include <string>
using namespace std ;
#define TAILLE_BUFFER 200
int main( void )
{
// 1 caractere en plus pour la fin de ligne,
//et un autre pour s'assurrer qu'on a un debordement
char ligne[TAILLE_BUFFER + 2];
fstream MonFic ("c:\\temp\\test.txt");
if (! MonFic.is_open())
{
cout << "impossible d'ouvrir le fichier" << endl;
return 1;
}
while (! MonFic.eof() )
{
MonFic.getline (ligne, TAILLE_BUFFER + 2);
int len = strlen(ligne);
if ( (len >= 0) && (len <= TAILLE_BUFFER) )
{
//c bon on ne depasse pas
cout<<"Ligne OK: \n"<< ligne<< endl;
}
else
{
//on depasse
cout << "Debordement" << endl;
return 1;
}
}
return 0;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.