Guest User

Untitled

a guest
Aug 23rd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. /*
  2. fopen(<fichier>,<mode_ouverture>) : r (lecture seule, dois exister)
  3. w (écriture seule)
  4. a (ajout fin de fichier)
  5. r+ (lecture/ecriture, dois exister)
  6. w+ (lecture/ecriture, supprime contenu)
  7. a+ (ajout lecture/ecrite, fin de fichier)
  8.  
  9. fclose(<fichier>) : fermer un fichier ouvert
  10. feof(<ficher>) : test la fin d'un fichier
  11.  
  12. [LECTURE]
  13. fgetc(<fichier>) : lire un caractere
  14. fgets(<chaine>, <taille_chaine>, <fichier>) : lit une ligne
  15. fscanf(<fichier>, <format>,...) : lit du texte formaté
  16.  
  17. [ECRITURE]
  18. fputc(<caratere>, <fichier>) : ecrit un caractere
  19. fputs(<chaine>, <fichier>) : écrit une ligne de texte
  20. fprintf(<fichier>,<format>,...) : ecrit du texte formaté
  21. */
  22. /*Ecrire un programme qui charge les mots du fichier MOTS.TXT
  23. dans la mémoire centrale, les trie d’après la méthode par
  24. propagation (méthode de la bulle) et les écrit dans un deuxième
  25. fichier MOTS_TRI.TXT.*/
  26. #include <stdio.h>
  27. #include <stdlib.h>
  28. #include <string.h>
  29.  
  30. int main(int argc, char const *argv[])
  31. {
  32. // Declaration variable
  33. FILE *pfichier = fopen("MOTS.TXT","w");
  34. char mot[50];
  35. char *tri;
  36. char *temp;
  37. int i,nb_mot=0,a,b;
  38. int longueur=0;
  39.  
  40. // Initialisation interractive
  41. printf("Combien de mot voulez vous rentrer ? : ");
  42. scanf("%d",&nb_mot);
  43.  
  44. // Ecriture dans le fichier
  45. for (i = 0; i < nb_mot; ++i)
  46. {
  47. printf("Mot #%d : ",i+1);
  48. scanf("%50s",&mot);
  49. longueur=longueur+strlen(mot);
  50. fprintf(pfichier,"%s\n",mot );
  51. }
  52. tri = malloc(sizeof(char)*longueur);
  53. fclose(pfichier);
  54. // Lecture
  55. pfichier = fopen("MOTS.TXT","r");
  56. if (pfichier==NULL)
  57. {
  58. puts("erreur");
  59. exit(1);
  60. }
  61. i=0;
  62. while (fgets(mot,50,pfichier))
  63. {
  64. printf("%s",mot);
  65. tri=mot;
  66. i++;
  67. }
  68. fclose(pfichier);
  69. // Tri
  70. for (a = 0; a < nb_mot-1; a++)
  71. {
  72. for (b = a+1; b < nb_mot; b++)
  73. {
  74. if (*(tri+a)>*(tri+b))
  75. {
  76. temp = *(tri+a);
  77. *(tri+a) = *(tri+b);
  78. *(tri+b)= temp;
  79. }
  80. }
  81. }
  82. // Affichage
  83. for (i = 0; i < nb_mot; ++i)
  84. {
  85. printf("%s\n",tri[i] );
  86. }
  87. return 0;
  88. }
Add Comment
Please, Sign In to add comment