Fichier en langage C et date

Fermé
El - Modifié le 21 mars 2021 à 08:00
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 21 mars 2021 à 14:22
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 !
A voir également:

2 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
21 mars 2021 à 11:05
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
21 mars 2021 à 14:22
Bonjour,

Pour avoir la date courante tu peux utiliser
time_t time(time_t* arg)
, qui retourne un nombre qui date de manière universelle l'instant présent.
Tu peux convertir ce
time_t
en une structure dans laquelle la date est décomposée avec
struct tm* localtime( const time_t* time )
, tu retrouves dans cette structure les jours, années, minutes, secondes...
Et tu peux obtenir la conversion de cette
struct tm
en une chaîne avec la fonction
size_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.
0