Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.16 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <fcntl.h>
  6. //la fonction inputf est utilisé pour écrire dans un fichier.
  7. void inputf(int fd, int vm, char* act)
  8. {
  9.     char* buf;
  10.     buf = (char*)malloc(sizeof(char)*8);
  11.     //j'ai utilisé la fonction sprintf pour écrire dans le buffer buf (et plus pricisement pour pouvoir envoyer des actions comme"\n"         et " " par write et les appliqués dans un fichier)
  12.     sprintf(buf,"%d%s",vm,act);
  13.     if(write(fd, buf, strlen(buf))==0){
  14.         perror("Erreur: Problème rencontré pendant l'écriture dans le fichier.\n");
  15.         exit(EXIT_FAILURE);    
  16.     }
  17.    
  18.     free(buf);
  19. }
  20. int main(){
  21.  
  22.     int nbrIter;
  23.     int nbrl1,nbrc1,nbrc2; // le nombre de colonne de la 1ere matrice nbrc1 est aussi le nombre de ligne de la 2ème matrice
  24.     int i, l, c;
  25.     int fd;
  26.     char* act; // il n'aura que deux valeurs "\n" ou " "
  27.    
  28.  
  29.  
  30.     //créer un fichier data
  31.     if((fd = open("data", O_CREAT|O_RDWR, 0777))==-1){
  32.         perror("Erreur: Impossible d'ouvrir le fichier.\n");
  33.         exit(EXIT_FAILURE);
  34.     }
  35.     act = (char*)malloc(sizeof(char)*4);
  36.     //récuperer le nombre d'itération
  37.     printf("le nombre d'iteration: \n");
  38.     scanf("%d",&nbrIter);
  39.     if (nbrIter <= 0)
  40.     {
  41.         perror("Erreur: au niveau de nombre d'itération.\n");
  42.         exit(EXIT_FAILURE);
  43.     }
  44.     //écrire/sauvegarder dans le fichier data
  45.     act = "\n";
  46.     inputf(fd, nbrIter, act);
  47.     for(i=0;i<nbrIter;i++)
  48.     {
  49.         printf("La taille de la matrice 1: \n");
  50.         printf("nbr de lignes: ");
  51.         scanf("%d",&nbrl1);
  52.         if (nbrl1 <= 0)
  53.         {
  54.         perror("Erreur: au niveau de nombre des lignes dans la matrice 1.\n");
  55.         exit(EXIT_FAILURE);        
  56.         }
  57.         act = " ";
  58.         inputf(fd, nbrl1, act);
  59.         printf("nbr de colonnes: ");
  60.         scanf("%d",&nbrc1);
  61.         if (nbrc1 <= 0)
  62.         {
  63.         perror("Erreur: au niveau de nombre des colonnes dans la matrice 1.\n");
  64.         exit(EXIT_FAILURE);        
  65.         }
  66.         act = "\n";
  67.         inputf(fd, nbrc1, act);
  68.  
  69.         printf("\nLa taille de la matrice 2: \n");
  70.         act = " ";
  71.         inputf(fd, nbrc1, act);
  72.         printf("le nbr de lignes de matrice 2 est égale au nbr de collonnes de matrice 1.\n");
  73.         printf("nbr de colonnes: ");
  74.         scanf("%d",&nbrc2);
  75.         if (nbrc2 <= 0)
  76.         {
  77.         perror("Erreur: au niveau de nombre des colonnes dans la matrice 2.\n");
  78.         exit(EXIT_FAILURE);        
  79.         }
  80.         act = "\n";
  81.         inputf(fd, nbrc2, act);
  82.  
  83.         int mtr1[nbrl1][nbrc1], mtr2[nbrc1][nbrc2];
  84.         printf("<<-------------------->>");
  85.         printf("\nRemplir la matrice 1:");
  86.         for(l=0;l<nbrl1;l++)
  87.         {
  88.             printf("\nle contenu de ligne %d :\n",l);
  89.             for(c=0;c<nbrc1;c++)
  90.             {
  91.                 scanf("%d",&mtr1[l][c]);
  92.                 if(c<nbrc1-1)
  93.                 {
  94.                     act = " ";
  95.                     inputf(fd, mtr1[l][c], act);
  96.                 }
  97.                 else
  98.                 {
  99.                     act = "\n";
  100.                     inputf(fd, mtr1[l][c], act);
  101.                 }
  102.             }
  103.         }
  104.        
  105.         printf("\nRemplir la matrice 2:");
  106.         for(l=0;l<nbrc1;l++)
  107.         {
  108.             printf("\nle contenu de ligne %d :\n",l);
  109.             for(c=0;c<nbrc2;c++)
  110.             {
  111.                 scanf("%d",&mtr2[l][c]);
  112.                 if(c<nbrc2-1)
  113.                 {
  114.                     act = " ";
  115.                     inputf(fd, mtr2[l][c], act);
  116.                 }
  117.                 else
  118.                 {
  119.                     act = "\n";
  120.                     inputf(fd, mtr2[l][c], act);
  121.                 }
  122.             }
  123.         }
  124.         printf("\n<<-------------------->>\n");
  125.        
  126.        
  127.     }
  128. printf("Le fichier data a été crée et rempli\n");
  129. close(fd);
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement