Problème ouverture de fichier en C

Fermé
dordouf - 19 nov. 2011 à 19:27
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 19 nov. 2011 à 21:26
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 19/11/2011 à 21:27
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