Pb lecture d'une struct date
Voici le prog
En fait j'ai un pb concernant la saisi d'uen struct date.
Ce qui est saisi est forcément de type string ,non?
Comment le mettre dans ma struct date?
Code:
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
| #include <cstdlib>
#include <iostream>
struct Date { int d; int m; int y;};
void aff(struct Date D)
{
std::cout << D.d;
std::cout << D.m;
std::cout << D.y;
};
void lis()
{
std::string s;
Date D2;
std::cin >> s;
};
void init(struct Date D1)
{
Date D3;
D3.d = D1.d;
D3.m = D1.m;
D3.y = D1.y;
aff(D3);
};
int main()
{
Date D1 = {20,10,05};
aff(D1);
lis();
init(D1);
system("PAUSE");
return 0;
} |
Merci pour vos conseils
Re: Pb lecture d'une struct date
salut,
Citation:
Envoyé par smag
Ce qui est saisi est forcément de type string ,non?
euh... ben non. tout peut être saisie. int, double, string, char...
on peut aussi utiliser les flux (>>,<<) pour des classes perso, il suffit dans ce cas de surcharger les opérateurs pour ladite classe.
Code:
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
| #include <iostream>
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
using std::istream;
struct Date
{
int d;
int m;
int y;
Date(int dd=0,int mm=0, int yy=0)
:d(dd),m(mm),y(yy)
{}
};
ostream& operator << (ostream& flux, Date & D)
{
flux << D.d << "\\" << D.m << "\\" << D.y;
return flux;
}
istream& operator >> (istream& flux, Date & D)
{
flux >> D.d >> D.m >> D.y;
return flux;
}
int main ()
{
Date D1;
Date D2;
cout << "Entrez une date : ";
cin >> D1;
cout << "Entrez une autre date : ";
cin >> D2;
cout << "Vous avez entrez ces dates : " << D1 << " et " << D2 << endl;
cout << "Moi je vous propose plutot ces dates : " << Date(01,01,1970) << " et " << Date(03,03,2005) << endl;
return EXIT_SUCCESS;
} |
testé, no problemo.
:ccool: