diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-10 23:15:18 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-10 23:15:18 +0200 |
| commit | 4ed8060318b1807638c12b8b43660bb98fc99fba (patch) | |
| tree | 976f9b6be6cfbb72c3c908e2e1e60069f5a4296a /semestre 3/structures des données/tme | |
| parent | 85fbaa4d9381e435be129aa7bc4ea6a472acb2b2 (diff) | |
Cours du 6 au 10 octobre
Diffstat (limited to 'semestre 3/structures des données/tme')
| -rw-r--r-- | semestre 3/structures des données/tme/tme3-5/exo1/entreeSortieLC.c | 19 | ||||
| -rw-r--r-- | semestre 3/structures des données/tme/tme3-5/exo1/main.c | 32 |
2 files changed, 23 insertions, 28 deletions
diff --git a/semestre 3/structures des données/tme/tme3-5/exo1/entreeSortieLC.c b/semestre 3/structures des données/tme/tme3-5/exo1/entreeSortieLC.c index 3adb7fb..178b7a8 100644 --- a/semestre 3/structures des données/tme/tme3-5/exo1/entreeSortieLC.c +++ b/semestre 3/structures des données/tme/tme3-5/exo1/entreeSortieLC.c @@ -12,20 +12,11 @@ Biblio* charger_n_entrees(char* nomfic, int n){ char* tmp = fgets(content, 256, f); if (!tmp) return NULL; - char* parsed[3]; - char c[256]; - int k = 0; - int l = 0; - for (int j = 0; j < 256 && content[j] != '\0'; j++){ - if (content[j] == ' '){ - c[k] = '\0'; - parsed[l++] = strdup(c); - k = 0; - } else { - c[k++] = content[j]; - } - } - inserer_en_tete(bib, atoi(parsed[0]), parsed[1], parsed[2]); + int num; + char title[256]; + char author[256]; + if (sscanf(content, "%d %s %s", &num, &title, &author) != 3) return NULL; + inserer_en_tete(bib, num, title, author); } if (fclose(f) != 0) return NULL; return bib; diff --git a/semestre 3/structures des données/tme/tme3-5/exo1/main.c b/semestre 3/structures des données/tme/tme3-5/exo1/main.c index f1e85c0..b38104a 100644 --- a/semestre 3/structures des données/tme/tme3-5/exo1/main.c +++ b/semestre 3/structures des données/tme/tme3-5/exo1/main.c @@ -27,13 +27,13 @@ int main(int argc, char** argv){ int rep; do { menu(); - char s[2]; - char* r = fgets(s, 2, stdin); - if (!r) { + char s[3]; + char* r = fgets(s, 3, stdin); + if (!r){ printf("erreur lors de la lecture :(\n"); return 3; } - s[1] = '\0'; + s[1] = '\0'; // skipping \n char rep = atoi(s); printf("\n"); switch(rep){ @@ -42,17 +42,21 @@ int main(int argc, char** argv){ afficher_biblio(bib); break; case 2: - int num; - char titre[256]; - char auteur[256]; printf("Veuillez ecrire le numero, le titre et l' auteur de l' ouvrage. \n"); - /* On suppose que le titre et l’auteur ne contiennent pas d’espace*/ - if (scanf("%d %s %s", &num, titre, auteur) == 3){ - inserer_en_tete(bib, num, titre, auteur); - printf("Ajout fait.\n"); - } else { - printf("Erreur format\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_en_tete(bib, num, title, author); break; case 3: Biblio* db = rechercher_doublons(bib); @@ -61,6 +65,6 @@ int main(int argc, char** argv){ } printf("\n"); } while (rep != 0); - printf ("Merci, et au revoir.\n"); + printf("Merci, et au revoir.\n"); return 0; } |
