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 -
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
/**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
-
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.-
- #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
-
-
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