C++ debutant

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.

9 réponses

tcent Messages postés 380 Date d'inscription   Statut Membre Dernière intervention   55
 
euu je suis dans le chapitre les pointeurs escusez moi
0
belhauss Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   3
 
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 ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
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
0
tcent
 
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
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bah pour la date, au lieu de char *date="21/07/08"; tu mets un cin >> date; tout simplement ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tcent
 
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;
}
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
0
tcent
 
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 / :(
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
#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;
}
0
tcent
 
voilllaaaaaaa c exactement sa que je cherché a faire!!!!
fallais faire char slash et stringstream ss;

merci beaucoup!!!!!!!!!!!!

je vais esseyer de le refaire et passer au suivant qui est du meme genre

merci encore!!!!!!
0