Prgramme en c

sindy5 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
sindy5 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -
bonsoire tous le monde je suis débutant au structure des fichiers j'ai un fichier .txt je veux le lire son contenu(les données ) puis le mettre dans un tableau et l'affiche ,mon probleme est dans l'affichage ,il affiche des autres données!!!!!!!
voila le programme
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int i;
float X[10];
float c;
FILE * XI;
void CHARGER_BASE_DES_X()
{

XI=fopen("XI.txt","r");
fscanf(XI,"%f",&X[i]);

while ((c = fgetc(XI)) != EOF)
{
for(i=1;i<=10;i++)

{
X[i]=c;

}



}
fclose(XI);
}
void main()
{

CHARGER_BASE_DES_X();
for(i=1;i<=10;i++)
{

printf("%f\n",X[i]);
}

}
et le fichier .txt
1111110
0110000
1101101
1111001
0010011
1011011
0011111
1110000
1111111
1111011
EOF



pouvez vous m'aide?merci d'avance.

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je suis en train de regarder en détail, mais ton problème vient surement de cette ligne :
fscanf(XI,"%f",&X[i]); // i n'est pas initialisé !
1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bon il y avait plus d'erreurs que je ne croyais en fait...

J'ai mis des commentaires dans le code que tu regarderas, mais je tiens à insister sur le fait que toutes les variables ne sont pas nécessairement globales contrairement à ce que tu as fait !

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 

float X[10]; // évite un maximum les variables globales !
             // c'est (entre autre) source d'erreurs

void chargerBaseDesX() // un nom de fonction s'écrit en minuscule !
{
	FILE* XI = fopen("XI.txt","r");
	
	int i; // une variable locale c'est plus propre

	for(i=0; i<10; i++) // les indices d'un tableau commencent à 0 !
	{
		if (EOF == fscanf(XI,"%f",X+i)) // 'X+i' <=> '&X[i]'
			break;
	}

	fclose(XI); 
} 

int main() // le point d'entrée retourne int et non void 
{
	chargerBaseDesX();
	
	int i; // ce n'est pas le même 'i' que dans la fonction
	       // c'est pour cela qu'on utilise des variables locales !
	for(i=0; i<10; i++)
	{
		printf("%f\n",X[i]);
	}

	return 0; // 0 pour un succès
} 
0
sindy5 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
merciiiiiiiiiiiiiii bcp pour la correction& les remarques
0
sindy5 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
mais je veux mettre le fichier txt dans une matrice
c-a-d
m[0][0]=1
m[0][1]=1
.
.
.
.
m[1][0]=0
.
.
.
m[9][0]=1
comment je peux faire ça
0