Problème ouverture de fichier en C

[Fermé]
Signaler
-
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
-
Bonjour,

J'ai un problème avec mon programme en C. Je débute avec ce langage.
Voici mon problème , j'arrive à ouvrir un fichier en lecture et à compiler sans problème.
Mais quand j'en ouvre un deuxième , le programme compile et met un message "Programme.exe a cessé de fonctionner" .Mais quand je fais des tests il lit les 2 fichiers.

Voici mon code


#include <stdio.h>
#include <stdlib.h>
#define max 1000

int main (int argc, char** argv)
{

FILE* fichier1 = NULL;
FILE* ligne;
FILE* fichier2 = NULL;

fichier1=fopen(argv[1],"r");

char tab[max]="";
char tab2[max]="";

if(fichier1 != NULL )
{

fgets(tab,max,fichier1);
printf("%s\n",tab);
fclose(fichier1);
}
else
{
printf("... Impossible de lire le fichier1");
fclose(fichier1);
}
fichier2=fopen(argv[2],"r");
if(fichier2 != NULL)
{
fgets(tab2,max2,fichier2);
printf("%s",tab2);
fclose(fichier2);
}
else
{
printf("Impossible de lire le fichier 2");
fclose(fichier2);
}
return 0;
}

Si quelqu'un peut m'aider .

Merci

1 réponse

Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
958
D'abord max2 n'est pas défini (je l'ai remplacé par max dans mon code). ligne n'est pas utilisé.
Dès lors le code compile sans warning sous gcc.
Il faut programmer proprement et vérifier la valeur de argc.
johand@osiris: ~/src/CCM/C $ gcc -Wall -o files files.c   
johand@osiris: ~/src/CCM/C $ ./files  files.c swap.c   
#include <stdio.h>   
#include <stdio.h>
johand@osiris: ~/src/CCM/C $ ./files  files.c 
#include <stdio.h>

Erreur de segmentation

Johan
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)