Modification, insertion, suppression, dans un tableau deux dimensions

Modification, insertion, suppression, dans un tableau deux dimensions - C - Programmation

Marsh Posté le 17-01-2011 à 21:25:13    

Bonjour à tous.  
 
Je dois réaliser un éditeur de texte en C, avec 20 lignes et 80 caractères par ligne.  
1) Je fais charger par mon programme un fichier situé dans le même dossier que mon binaire  
2) Je demande quelle opération veut faire l'utilisateur  
- Si l'opération à besoins du numéro de ligne je le  
- A chaque fois une ligne entrée ne doit excéder 80 caractères.  
 
Voici les fonctions que je dois implanter :  
 
* saisie d'un nouveau texte ? E (= suppression de tous le texte)  
* affichage d'une ligne ? a num  
* affichage du texte ? A  
* affichage du texte avec numero de ligne ? N  
* suppression d'une ligne ? d num  
* insertion en fin de texte ? I  
* insertion avant une ligne ? i num  
* modification d'une ligne ? m ligne  
* affichage de toutes les lignes (avec leur numero) contenant un mot ? f mot  
* remplacement dans tout le texte d'un mot par un autre ? s ancien nouveau  
* enregistrer ? S  
* quitter ? Q  
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. char text[20][80];
  5. int main()
  6. {
  7. int i=0, num;
  8. char c[80];
  9. char e=0;
  10. char car;
  11. char temp[80];
  12. FILE *g;
  13. do {
  14. printf("Entrer le nom de fichier a editer :\n" );
  15. fgets(c, sizeof(c), stdin);
  16. c[strlen(c)-1] = 0;
  17. g = fopen(c, "r" );
  18. if(g == NULL)
  19. {
  20.  printf("Erreur le fichier n'existe pas\n" );
  21. }
  22. }
  23. while(g == NULL) ;
  24. while(fgets (text[i], 80, g) !=NULL)
  25.  i++;
  26. fclose(g);
  27. system("clear" ); 
  28.    while (e != 'Q'){
  29.     printf("Que voulez-vous faire ? : " );
  30.     scanf(" %c", &e);
  31.     if(e != 'Q') {
  32.         switch(e)
  33.                   {
  34.                   case 'A': /*Affichage du texte*/
  35.                   for(i=0; i<20; i++)
  36.                   printf("%s", text[i]);
  37.                   break;
  38.      
  39.                   case 'm': /*Modification d'une ligne*/
  40.                   fgets(temp, sizeof(temp), stdin);
  41.                   printf ("Quelle ligne ? " );
  42.                   sscanf(temp, "%d", &num);
  43.              fgets(text[num],80,stdin);
  44.                   break;
  45.      
  46.                   case 'd': /*Suppression d'une ligne*/
  47.                   fgets(temp, sizeof(temp), stdin);
  48.                   printf ("Quelle ligne ? " );
  49.                   sscanf(temp, "%d", &num);
  50.                   for(i=18; i<num; i++)
  51.            strcpy(text[i], text[i+1]);
  52.                   break;
  53.      
  54.                   case 'i': /*Insertion avant une ligne*/
  55.                   fgets(temp, sizeof(temp), stdin);
  56.                   printf ("Quelle ligne ? " );
  57.                   sscanf(temp, "%d", &num);
  58.              for(i=19; i>num; i--)
  59.            strcpy(text[i], text[i-1]);
  60.                   break;
  61.      
  62.                   case 'B': /*Sauver les modifications*/
  63.                   break;
  64.      
  65.                   case 'a': /*Affichage d'une ligne*/
  66.                   break;
  67.      
  68.                   case 'N': /*Affichage du texte avec les numéros de ligne*/
  69.                   break;
  70.                   case 's': /*Remplacement dans tous le texte d'un mot par un autre*/
  71.                   break;
  72.      
  73.                   case 'I': /*Insertion en fin de texte*/
  74.                   break;
  75.      
  76.                   case 'f': /*Affichage de toutes les lignes contenant un mot*/
  77.                   break;
  78.          
  79.                   default:
  80.                   printf("Erreur ce choix ne fait pas partie de ceux proposes \n" );
  81.                   break;
  82.                   }
  83.                }
  84.      }
  85.   return 0;
  86. }


 
 
La fonction afficher le texte fonctionne, preuve que le texte se charge.  
Malheureusement le reste ne fonctionne pas, je ne parviens pas à modifier mon tableau. Avez-vous une idée de la façon dont je dois m'y prendre pour par exemple modifier, supprimer ou insérer une ligne ?  
 
Je vous remercie pour votre précieuse aide.


Message édité par Superwal le 17-01-2011 à 21:31:38
Reply

Marsh Posté le 17-01-2011 à 21:25:13   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed