Problème ouverture de fichier en C

dordouf -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
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

A voir également:

1 réponse

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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)
0