Comparison between pointer and integer

Fermé
nounou.ing - 30 juil. 2010 à 17:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 août 2010 à 21:00
salut :)
Quand je compile ce code source avec DevC ++, il m'indique cette erreur là "comparison between pointer and integer "
y a-t- il qcq qui peut m'aider
ce code permet de partager un fichier ( chaque ligne contient un seul mot) en 4 nouveau fichier selon la langueur du mot
voila le code:

#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#define f "french_wordlist_sans_accent.txt"

int main ( int argc, char argv[ ] )
{
FILE* fichier5 = NULL;
FILE* fichier6 = NULL;
FILE* fichier7 = NULL;
FILE* fichier8 = NULL;
FILE* fichier;
char caractereActuel[]="";
char motAct[]="";

fichier = fopen (f,"r");
fichier5 = fopen ("mot5.txt", "a+");
fichier6 = fopen ("mot6.txt", "a+");
fichier7 = fopen ("mot7.txt", "a+");
fichier8 = fopen ("mot8.txt", "a+");


if ((fichier = fopen (f,"r")) == NULL)
{
printf("ERREUR");
fprintf(stderr, "\n Erreur: Impossible de lire le fichier f %s\n",f);
return(EXIT_FAILURE);
}
caractereActuel == fgetc(fichier);
while (caractereActuel != "\n")

motAct =strcpy(motAct,caractereActuel);

switch (strlen(motAct))
{
case 5: fputs(motAct, fichier5);
printf("\n");
break;

case 6: fputs(motAct, fichier6);
printf("\n");
break;

case 7: fputs(motAct, fichier7);
printf("\n");
break;

case 8: fputs(motAct, fichier5);
printf("\n");
break;
default:
printf("ERROR\n");
break;

}
fclose(fichier);
fclose(fichier5);
fclose(fichier6);
fclose(fichier7);
fclose(fichier8);
return 0;

}

12 réponses

Krysstof Messages postés 1489 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
30 juil. 2010 à 17:14
char caractereActuel[]=""; >> ca c'est une tableau de char


caractereActuel == fgetc(fichier); >> ca c'est un bug car == c'est une test, pas une affectation


donc char caractereActuel="";
et caractereActuel = fgetc(fichier);

ca devrait marcher mieux
0
Krysstof Messages postés 1489 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
30 juil. 2010 à 17:16
ah oué, tant que j'y pense ton code ne marchera pas après car tu lis caracatère à caractère avec "fgetc", donc ton code ne me parait pas valable derriere
0
Krysstof Messages postés 1489 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
Modifié par Krysstof le 30/07/2010 à 17:21
rah, mais en lisant mieux ca peut pas du tout marcher ... tu lis une premiere fois avec fgetc, mais dans ton while tu ne list pas la suite, donc ta boucle sera infini

caractereActuel =fgetc(fichier);
while (caractereActuel != "\n")
{
motAct =strcat(motAct,caractereActuel);
caractereActuel =fgetc(fichier);
}

tu remarquera strcat a la place de strcpy, pour concatener tous les caractere lu un a un


tu peux aussi remplacer tout ca par

motAct = fgets(fichier);
0