Probléme avec fopen en langageC

Fermé
papy - 9 mai 2012 à 15:48
Bakux Messages postés 1193 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 5 juillet 2015 - 9 mai 2012 à 17:12
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 1193 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 5 juillet 2015 195
9 mai 2012 à 15:54
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
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 1193 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 5 juillet 2015 195
Modifié par Bakux le 9/05/2012 à 16:44
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
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 1193 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 5 juillet 2015 195
9 mai 2012 à 17:02
Quelle est l'erreur ?
0
premier_prog_stag.c:55: warning: passing arg 1 of 'fopen' makes pointer from integer without a cast
0
Bakux Messages postés 1193 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 5 juillet 2015 195
9 mai 2012 à 17:12
et en replaçant char file = strcat(chemin, lignes[ligne]);
par char *file = strcat(chemin, lignes[ligne]);
0