Matrice a partir d'un fichier.txt??

Résolu
ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
/**débutante en programmation C**/
svp,g un fichier texte qui contient des nombres binaires
par exemple:
monFichier.txt :
1 0 0 1 1
1 0 0 0 1
1 1 1 1 1
alors je veux definir une matrice dans mon pg principale qui contient ces nombres binaires
??
Merci de me répondre
Configuration: Windows Vista
Internet Explorer 7.0

2 réponses

  1. loupius
     
    Quel est le problème ?
    Il suffit de:
    - ouvrir le fichier,
    - le lire ligne par ligne,
    - déchiffrer la ligne, chaque bit étant séparé par un espace et les mettre dans la matrice.
    Qu'y-a-t-il de compliqué ?
    Bon courage.
    0
    1. ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
       
      merci bien
      mais g fait ces démarches
      dans la compilation il me génére des erreurs
      0
      1. loupius > ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
         
        Donne ton code avec les balises (à droite du souligné) et bien sûr avec les 3 ou 4 premières lignes d'insulte du compilateur :-)
        Ce serait bien le diable si personne ne donnait la bonne solution.
        0
      2. ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   > loupius
         
        #include <stdio.h>
        #include <string.h>
        int main(int argc, char *argv[])
        {
        FILE* fichier = NULL;
        int caractereActuel = 0;
        char buffer [100];
        int A[50][50];
        int i=0,j=0;
        int k,l;

        fichier = fopen("test.txt", "r");
        if (fichier != NULL)
        { //Lecture de fichier ligne par ligne
        fgets(buffer,100,fichier);
        // Boucle de lecture des caractères un à un
        do
        {
        caractereActuel = fgetc(fichier); // On lit le caractère
        A[i][j]=caractereActuel;

        } while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
        for(k=0;k<2;k++)
        for(l=0;l<8;l++)
        printf("%d",A[k][l]);
        fclose(fichier);
        }

        return 0;
        }


        alors??
        merci d'avence loupius
        0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Voici un code fonctionnel. Il ne gère ni les erreurs provoquées par un plaisantin qui mettrait des autres chiffres que 0 ou 1 ni la taille de la matrice lue.
    #include <stdio.h>
    
    int main(void) {
        FILE* fichier = NULL;
        int A[50][50];
    
        fichier = fopen("test.txt", "r");
        if (fichier != NULL) {
            int c;
            int i,j;
            i=j=0;
            //Lecture de fichier ligne par ligne
            while((c=fgetc(fichier)) != EOF) {
                if(c=='\n') {
                    i++;
                    j=0;
                }
                else if(c=='0' || c=='1')
                    A[i][j++]=c-'0';
            }
    
            //affichage
            for(i=0;i<3;i++) {
                for(j=0;j<5;j++)
                    printf("%d ",A[i][j]);
                putchar('\n');
            }
    
            fclose(fichier),fichier=NULL;
        }
    
        return 0;
    }
    

    Si t'as des questions sur le code ou que tu souhaites un code plus robuste, n'hésite pas.
    Cdlt
    0
    1. ameni.enis Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
       
      enfinnnnnnnnnnn ca marche
      :)
      vrt merci
      0