C++ debutant
tcent
-
tcent -
tcent -
Bonjour,
je suis bloquer dans un petit exercice de C++
le sujet est le suivant:
ecrire un programme qui se lit dans une date dans le format jj/mm/aa et la restitue dans le format LL NomDuMoi année
(toutes les dates sont aux 21eme siecle)
exemple :
21/07/05 donnera 21 juillet 2005
je suis dans le chapitre les conteurs ,
pour le moi jai fais se tableau :
const char *NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"};
ce qui me gene le plus se sont les caracteres "/" dans les dates
merci pour votre aide.
je suis bloquer dans un petit exercice de C++
le sujet est le suivant:
ecrire un programme qui se lit dans une date dans le format jj/mm/aa et la restitue dans le format LL NomDuMoi année
(toutes les dates sont aux 21eme siecle)
exemple :
21/07/05 donnera 21 juillet 2005
je suis dans le chapitre les conteurs ,
pour le moi jai fais se tableau :
const char *NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"};
ce qui me gene le plus se sont les caracteres "/" dans les dates
merci pour votre aide.
A voir également:
- C++ debutant
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
9 réponses
char NomMois[12][9] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"};
char ch="27/07/05";
int x;
jour = atoint(ch[0])*10;
jour += atoint(ch[1]) ;
// switch pour les mois c est simple :)
int anne= atoint(ch[6])*10;
anne +=atoint(ch[7]);
anne += 2000;
cout<<jour<<" "<<mois<<" "<<anne<<endl;
mai est ce préciseé de les faires avec des pointeurs ?
char ch="27/07/05";
int x;
jour = atoint(ch[0])*10;
jour += atoint(ch[1]) ;
// switch pour les mois c est simple :)
int anne= atoint(ch[6])*10;
anne +=atoint(ch[7]);
anne += 2000;
cout<<jour<<" "<<mois<<" "<<anne<<endl;
mai est ce préciseé de les faires avec des pointeurs ?
Salut,
Ou plus simplement :
Tu peux remplacer le printf par cout, si tu veux utiliser les bibliothèques spécifiques au C++
Cdlt
Ou plus simplement :
#include <stdio.h> int main(void){ const char *NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"}; char *date="21/07/05"; int jour,mois,annee; sscanf(date,"%d/%d/%d",&jour,&mois,&annee); printf("%.2d %s 20%.2d\n",jour,NomMois[mois-1],annee); return 0; }
Tu peux remplacer le printf par cout, si tu veux utiliser les bibliothèques spécifiques au C++
Cdlt
merci,
mais le probleme c'est que la date, je dois l'afficher a l'aide d'un cin .
je dois la rentrer dans la console c'est aussi pour sa que le "/" me gene beaucoup
sinon oui je suis obliger d'utiliser les pointeurs ( enfin "obligeré" non mais on est dans se chapitre donc je prefere les utiliser car le but c'est d'apprendre a s'en servir :) )
il n'y a rien de noté je ne veus pas juste faire un copier coller du resultat mais surtout comprendre comment on fait ;)
( malheuresement le "prof" ne fais pas de correction :( )
merci a vous
ps:(meme si c'est umpeu plus long svp ne le faite pas avec des codes compliquer ) merci
mais le probleme c'est que la date, je dois l'afficher a l'aide d'un cin .
je dois la rentrer dans la console c'est aussi pour sa que le "/" me gene beaucoup
sinon oui je suis obliger d'utiliser les pointeurs ( enfin "obligeré" non mais on est dans se chapitre donc je prefere les utiliser car le but c'est d'apprendre a s'en servir :) )
il n'y a rien de noté je ne veus pas juste faire un copier coller du resultat mais surtout comprendre comment on fait ;)
( malheuresement le "prof" ne fais pas de correction :( )
merci a vous
ps:(meme si c'est umpeu plus long svp ne le faite pas avec des codes compliquer ) merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ui mais la il me demande de delcarer date
alors j'ai fais int date
il ma mis une erreur car date n'est pas un entier
donc j'ai fais char *date
la il ne met plus d'erreur appart une gross au moment ou je lence le programme
voila ce que j'ai :
#include "iostream"
using std::cout;
using std::cin;
using std::endl;
#include <stdio.h>
int main(void){
char *date;
const char *NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"};
cin>>date;
int jour,mois,annee;
sscanf(date,"%d/%d/%d",&jour,&mois,&annee);
printf("%.2d %s 20%.2d\n",jour,NomMois[mois-1],annee);
return 0;
}
alors j'ai fais int date
il ma mis une erreur car date n'est pas un entier
donc j'ai fais char *date
la il ne met plus d'erreur appart une gross au moment ou je lence le programme
voila ce que j'ai :
#include "iostream"
using std::cout;
using std::cin;
using std::endl;
#include <stdio.h>
int main(void){
char *date;
const char *NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"};
cin>>date;
int jour,mois,annee;
sscanf(date,"%d/%d/%d",&jour,&mois,&annee);
printf("%.2d %s 20%.2d\n",jour,NomMois[mois-1],annee);
return 0;
}
J'ai du mal à comprendre. Tu peux utiliser printf, et tu dois utiliser cin ?
Car en général, en C++, on utilise cout et cin, (pas de printf, bien que celà soit possible) ?
Ensuite, peux-tu utiliser le type string ? Au lieu de char* ? Car le c++ te met ce nouveau type à ta disposition, et c'est beaucoup plus pratique ?
Sinon pourquoi ça ne marchait pas ? Car date n'est pas de type int, mets de type string ou char* vu que tu rentres des '/'.
Donc tu peux faire char date[9]; ou string date.
Cdlt
Car en général, en C++, on utilise cout et cin, (pas de printf, bien que celà soit possible) ?
Ensuite, peux-tu utiliser le type string ? Au lieu de char* ? Car le c++ te met ce nouveau type à ta disposition, et c'est beaucoup plus pratique ?
Sinon pourquoi ça ne marchait pas ? Car date n'est pas de type int, mets de type string ou char* vu que tu rentres des '/'.
Donc tu peux faire char date[9]; ou string date.
Cdlt
euu en faite j'ai deja utilisé printf mais pas dans ce cour la s'etait sous linux avec codebloks
sinon oui j'ai utiliser pas mal de string aussi dans ce chapitre
mais j'ai toujours du mal a les utiliser ;)
mais sa n'empeche pas que je ne comprend pas comment utiliser / dans le cin
car a chaque fois il ne releve que les deux premiers numeros correspondant aux jours
sa aurait été plus simple si j'avais mis des espaces au lieu des / :(
sinon oui j'ai utiliser pas mal de string aussi dans ce chapitre
mais j'ai toujours du mal a les utiliser ;)
mais sa n'empeche pas que je ne comprend pas comment utiliser / dans le cin
car a chaque fois il ne releve que les deux premiers numeros correspondant aux jours
sa aurait été plus simple si j'avais mis des espaces au lieu des / :(
En C++ (avec cin et compagnie), le programme ressemblerait plutôt à :
Après tu peux faire du mixe des deux codes (version C, version C++) mets bon comme pour tout les mélanges c'est bof :d
Après tu peux faire du mixe des deux codes (version C, version C++) mets bon comme pour tout les mélanges c'est bof :d
#include <iostream> #include <string> #include <sstream> using namespace std; int main(void){ int jour,mois,annee; string date; stringstream ss; char slash; const string NomMois[] = {"janvier","fevrier","mars", "avril", "mai", "juin","juillet","aout","septembre","octobre","novembre","decembre"}; cin>>date; ss<<date; ss>>jour>>slash>>mois>>slash>>annee; cout << jour << " " << NomMois[mois-1] << " " << annee << endl; return 0; }