Bonjour,

J'aimerai réaliser une fonction qui vérifie une date saisie en string, pour cela je récupère les données avec substr et les transforme en int avec atoi().
Voici ma fonction modifiée pour vérifier les données:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
cout<<"Date de fin (ex: 01/01/2009) : ";
getline(cin,dateFin); // Récupère la date saisie
 
bool dateValide(string dateFin)
{
	char *j,*m,*a;
	j = (char*)dateFin.substr(0,2).c_str();
	m = (char*)dateFin.substr(3,2).c_str();
	a = (char*)dateFin.substr(6,4).c_str();
 
        cout<<atoi(j)<<" "<<atoi(m)<<" "<<atoi(a)<<endl;
}
Pour l'instant je récupère le mois et l'année (m,a) mais la valeur de jour est la même que m.
Cela semble concerner uniquement les premiers caractères de dateFin, car si je mets substr(6,4) pour j, j'obtiens l'annee.
J'ai essayé en assignant directement "01/02/2009" à dateFin sans passer par la saisie et j'ai la même erreur...

Qu'en pensez-vous? d'où peut venir le problème?