Probléme avec fopen en langageC

papy -  
Bakux Messages postés 1458 Statut Membre -
Bonjour,
voici mon code, je veux ouvrir ces fichiers que j'ai déclaré dans la tableau ligne à chaque itération .le programme ne se compile pas parce que la fonction fopen ne prend pas plus de deux paramètres .Moi je veux le programme comme tel qu'à chaque itération dossier et nom de la ligne s'incrémentent. SVP j'ai besoin d'aide:
char *LIGNES[7]= {"T1601_Loop_#7","T1601_Loop_#13","CSA_ADSL_Loop4","CSA_ADSL_Loop6","CSA_ADSL_Loop7","ADSL_mid_CSA","T1601_Loop_#9"};

main()
{
int ligne;
for(ligne=0;ligne <7;ligne++)
{
char nom_de_la_ligne= *LIGNES[ligne];
char dossier= *LIGNES[ligne];
char chemin="/home/mgharbi/Bureau/Algo_22_avril_2012/Algo_22_avril_2012/%s/%s_PSD_LT",dossier, nom_de_la_ligne);
FILE *fp;
fp=fopen("%s",chemin,"r");

if (fp ==NULL)
{
puts("erreur");
}
}

}




4 réponses

Bakux Messages postés 1458 Statut Membre 188
 
char chemin="/home/mgharbi/Bureau/Algo_22_avril_2012/Algo_22_avril_2012/%s/%s_PSD_LT",dossier, nom_de_la_ligne);
n'est pas correct, tu ne peux pas mettre des autres paramètres dans la détermination de la valeur de la variable chemin.

Ensuite je comprends pas pourquoi tu déclares 2 variables qui ont la même valeur.

De plus, fopen ne prends que 2 paramètres, l'adresse du fichier, et le mode de lecture/écriture.
0
papy
 
oui aider moi !!!moi mon idé c'est que a chaque itératiion
parexemple quand ligne=0 qu'il rentre dans le dossier T1601_Loop_#7 et puis il lit le fichier T1601_Loop_#7_PSD_LT.Ainsi de suite suivaant le tableau
0
Bakux Messages postés 1458 Statut Membre 188
 
char lignes[7]= {"T1601_Loop_#7","T1601_Loop_#13","CSA_ADSL_Loop4","CSA_ADSL_Loop6","CSA_ADSL_Loop7","ADSL_mid_CSA","T1601_Loop_#9"}; 

main() 
{ 
int ligne; 
for(ligne=0;ligne <7;ligne++) 
{ 

char chemin="/home/mgharbi/Bureau/Algo_22_avril_2012/Algo_22_avril_2012/%s/%s_PSD_LT"; 

char file = strcat(chemin, lignes[ligne]);  

FILE *fp; 
fp=fopen(file,"r"); 

if (fp ==NULL) 
{ 
puts("erreur"); 
} 
} 

} 


Et rends ton code plus propre la prochaine fois.
0
papy
 
Je tiendrais compte du conseil.
Vous voyez %s dans la variable chemin .En fait, j'ai voulu les remplacer par les variables de chaîne de caractères *LIGNES[ligne].
Vous voyez un peu de quelle idée je partais ?? je vais m'inspirer de votre code ce pendant il bug.
0
Bakux Messages postés 1458 Statut Membre 188
 
Quelle est l'erreur ?
0
papy
 
premier_prog_stag.c:55: warning: passing arg 1 of 'fopen' makes pointer from integer without a cast
0
Bakux Messages postés 1458 Statut Membre 188
 
et en replaçant char file = strcat(chemin, lignes[ligne]);
par char *file = strcat(chemin, lignes[ligne]);
0