Fichier en langage C et date
El
-
Dalfab Messages postés 638 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 638 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis censée écrire un programme en C pour créer une banque. Créer un compte, retrait, dépôt, recherche de compte,transfert, historique, consultation de compte. Là j'en suis à la création et j'ai deux problèmes. Tout d'abord la date de création je n'ai aucune idée de comment la générer automatiquement alors si vous pouvez me montrer un bloc de code pour ça et m'expliquer je serais contente. Ensuite j'arrive à enregistrer les données dans le fichier avec le numcompte qui s'incrémente à chaque fois cependant quand je reprends le programme le programme le numéro de compte reviens à 1 du coup je me retrouve avec plusieurs comptes ayant le même numéro. Merci de bien vouloir m'aider !
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
-
Bonjour,
Pour avoir la date courante tu peux utilisertime_t time(time_t* arg)
, qui retourne un nombre qui date de manière universelle l'instant présent.
Tu peux convertir cetime_t
en une structure dans laquelle la date est décomposée avecstruct tm* localtime( const time_t* time )
, tu retrouves dans cette structure les jours, années, minutes, secondes...
Et tu peux obtenir la conversion de cettestruct tm
en une chaîne avec la fonctionsize_t strftime(char* restrict str, size_t count, const char* restrict format, const struct tm* restrict time)
.
Plus d'explications dans https://forums.commentcamarche.net/forum/affich-37142716-fichier-en-langage-c-et-date ou https://en.cppreference.com/w/c/chrono
Ça donne :#include <time.h> voit test(void) { time_t instant_courant = time( NULL ); struct tm instant_details = *localtime( &instant_courant ); char instant_texte[64]; strftime( instant_texte, sizeof instant_texte, "%D", &instant_details ); printf( "la date est : %s\n", instant_texte ); }
Quand ton programme redémarre, il n'a aucune information sur son passé. Pour continuer ta numérotation, il te faut au début du programme essayer d'ouvrir et de lire ton fichier pour récupérer le dernier numéro.