Matrice a partir d'un fichier.txt??

Résolu/Fermé
ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010 - 11 avril 2009 à 22:50
ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010 - 13 avril 2009 à 22:58
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

2 réponses

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
ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010
11 avril 2009 à 23:53
merci bien
mais g fait ces démarches
dans la compilation il me génére des erreurs
0
loupius > ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010
12 avril 2009 à 00:37
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
ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010 > loupius
12 avril 2009 à 21:37
#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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 avril 2009 à 01:42
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
ameni.enis Messages postés 22 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 26 mai 2010
13 avril 2009 à 22:58
enfinnnnnnnnnnn ca marche
:)
vrt merci
0