Bonjour à tous,
J'ai cherché dans le forum le code pour trier et trouver la valeur max dans un fichier texte. J'en ai trouvé quelques un. Mais c'est pas en C. Quelqu'un peut me donner le code en C qui fait cela. C'est gentil. Merci beaucoup.
Bonjour à tous,
J'ai cherché dans le forum le code pour trier et trouver la valeur max dans un fichier texte. J'en ai trouvé quelques un. Mais c'est pas en C. Quelqu'un peut me donner le code en C qui fait cela. C'est gentil. Merci beaucoup.
Bonjour,
Qu'appelles tu la "valeur max dans un fichier texte" ?
Ça dépend de la manière dont est organisé ton fichier, de la façon dont sont stockées les valeurs... En bref, de la façon par laquelle a été généré le fichier.
Il faudrait que tu nous donnes plus d'informations pour qu'on puisse t'aider.
Par exemple, j'ai un fichier texte comme ci-dessous. Tu peux le metre dans l'ordre croissant et décroissant et trouver la valeur maximale de cette colone? Merci beaucoup.
-1533.
-1329.
-1107.
-828.
-625.
-76.
-220.
19.
40.
100.
161.
425.
5648.
5490.
1589.
1660.
1705.
4494.
4365.
4050.
Ton fichier est déjà ranger dans l'ordre croissant/ décroissant ??
Si oui alors soit tu lit la dernière ligne (ordre croissant) et tu auras la plus grande valeur. Dernière ligne si tu as un ordre décroissant.
Sinon trie tout d'abords tes données et ensuite reprend les lignes du dessus dans le cas qui va bien :p
Alors, il y a toujours plusieurs façon de faire une chose en C, il n'y a pas UN code pour un problème.
Dans ton cas, il faut :
- Lire le fichier
- Stocker les valeurs
- Trier les valeurs
- Les enregistrer triées dans un nouveau fichier
- Donner la valeur maximum
1- Lecture du fichier.
Une lecture de fichier est assez simple en C :
2- stockage des valeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 FILE * f = fopen("le_fichier.txt", "r"); if(NULL == f) { perror("le_fichier.txt"); } else { char buf[256]; while(NULL != fgets(buf, sizeof buf, f) { printf("buf\n"); } fclose(f); }
Dans ce qui suit, je n'affiche plus les valeurs à la lecture, mais les stocke et les affiche en toute fin.
Et ainsi de suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int valeurs[100]; FILE * f = fopen("le_fichier.txt", "r"); if(NULL == f) { perror("le_fichier.txt"); } else { int i, cnt = 0; char buf[256]; while(NULL != fgets(buf, sizeof buf, f) { valeurs[cnt ] = strtol(buf, NULL, 10); ++cnt ; if(cnt >= 100) { printf("Attention : trop de valeurs dans le fichier.\n"); break; } } for(i = 0; i < cnt; ++i) { printf("valeur %d : %d\n", i, valeurs[i]); } fclose(f); }
Partager