aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/structures des données/tme/tme3-5/exo2/main.c
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-19 23:11:41 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-19 23:11:41 +0200
commitb47e5b1518d7089a2f6fdba439cf35dcf29e6089 (patch)
treebcfa88dffcff71d6a0959d2db7951cc4105f2a42 /semestre 3/structures des données/tme/tme3-5/exo2/main.c
parent4ed8060318b1807638c12b8b43660bb98fc99fba (diff)
Cours du 13 au 17 octobre
Diffstat (limited to 'semestre 3/structures des données/tme/tme3-5/exo2/main.c')
-rw-r--r--semestre 3/structures des données/tme/tme3-5/exo2/main.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/semestre 3/structures des données/tme/tme3-5/exo2/main.c b/semestre 3/structures des données/tme/tme3-5/exo2/main.c
new file mode 100644
index 0000000..baaebf3
--- /dev/null
+++ b/semestre 3/structures des données/tme/tme3-5/exo2/main.c
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "entreeSortieH.h"
+#include "biblioH.h"
+
+void menu(){
+ printf("Entrez l'action à effectuer :\n");
+ printf("0. Sortie du programme\n");
+ printf("1. Affichage\n");
+ printf("2. Insérer ouvrage\n");
+ printf("3. Afficher les doublons\n");
+}
+
+int main(int argc, char** argv){
+ if (argc != 3) {
+ printf("nombre d'argument invalide\n");
+ return 1;
+ }
+ char* file = argv[1];
+ int n = atoi(argv[2]);
+ BiblioH* bib = charger_n_entrees(file, n);
+ if (!bib){
+ printf("erreur lors de la lecture du fichier\n");
+ return 2;
+ }
+ printf("tout va bien :D\n");
+ int rep;
+ do {
+ menu();
+ char s[3];
+ char* r = fgets(s, 3, stdin);
+ if (!r){
+ printf("erreur lors de la lecture :(\n");
+ return 3;
+ }
+ s[1] = '\0'; // skipping \n char
+ rep = atoi(s);
+ printf("\n");
+ switch(rep){
+ case 1:
+ printf("Affichage : \n");
+ afficher_biblio(bib);
+ break;
+ case 2:
+ printf("Veuillez ecrire le numero, le titre et l' auteur de l' ouvrage. \n");
+ char input[256];
+ char* s = fgets(input, 256, stdin);
+ if (!s){
+ printf("Entrée invalide.");
+ break;
+ }
+ int num;
+ char title[256];
+ char author[256];
+ if (sscanf(input, "%d %s %s", &num, &title, &author) != 3){
+ printf("Entrée invalide.");
+ break;
+ }
+ inserer(bib, num, title, author);
+ break;
+ case 3:
+ BiblioH* db = rechercher_doublons(bib);
+ afficher_biblio(db);
+ break;
+ }
+ printf("\n");
+ } while (rep != 0);
+ printf("Merci, et au revoir.\n");
+ liberer_biblio(bib);
+ return 0;
+}