Crocandrew
Messages postés22Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 7 avril 2010
-
14 avril 2009 à 16:38
Crocandrew
Messages postés22Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 7 avril 2010
-
15 avril 2009 à 14:28
Bien le bonjour,
je suis en train de réaliser mon projet de fin d'anée en C, et j'ai un petit probème en ce qui concerne la fonction strcpy !!
A chaque fois que je l'utilise j'ai des messages d'erreurs dans le genre : makes pointer from integer without a cast ...
J'ai essayé de faire un malloc, un realloc mais ça ne vas pas... ou du moins je fais la mauvaise manip...
c'est vraiement un bête truc et ça commence a m'énerver.
Merci d'avance
A voir également:
Passing argument 2 of 'strcpy' makes pointer from integer without a cast
Passing argument 2 of ‘strcat’ makes pointer from integer without a cast - Meilleures réponses
Passing argument 1 of 'strcpy' makes pointer from integer without a cast - Meilleures réponses
Crocandrew
Messages postés22Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 7 avril 20104 14 avril 2009 à 21:40
Voila merci d'avance.
C'est dans le cadre d'une ouverture de fichier.
Je tente de récupérer une série de noms de maison d'édition puis de les mettres dans un tableau.
mon fichier txt est sous cette forme :
blabla#blabla#blalvla#etc
code:
fichier = fopen("bdd.txt", "r");
if (fichier != NULL)
{
// Boucle de lecture des caractères un à un
do
{
if( caractereActuel != '#')// # est le caractère qui sépare mes noms d'éitions
{
caractereActuel = fgetc(fichier);// On lit le caractère
strcpy(mot,caractereActuel); // on le copie dans mot
}
else{
strcpy(TabMaisonEdit[cptEdition].nomEdition,mot); //On copie le mot COMPLET dans le tableau
strcpy("",mot);// la chaine de caractère mot est formatée
caractereActuel = fgetc(fichier); // on avance d'un caractère pour ne pas rester sur le #
cptEdition++;// on augmente d'une édition, pour avancer dans le tableau
}
} while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 15 avril 2009 à 09:43
3 choses:
- strcpy() prend en paramètres 2 chaines de caractères: la 1ere c'est la destination, la 2e, c'est la source
- strpcy("",mot): suivant ce que je viens d'écrire, tu dois comprendre le souci de cette écriture, non? tu as inversé les 2 paramètres
- enfin, strcpy "écrase" la chaine de destination. Ce que tu voudrait faire serait plutôt une concaténation, non? Dans ce cas, strcat()
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Crocandrew
Messages postés22Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 7 avril 20104 15 avril 2009 à 12:57
Ok ok j'ai changé ma manière de faire, je n'ai plus d'erreur de compil mais le résultat est pas terrble.Quand j'affiche ma variable mot il y a bien le mot voulu, mais a la suite il ya par exemple: motvoulu/>:-w
ça donne ça ;
fichier = fopen("bdd.txt", "r");
caractereActuel= fgetc(fichier);
int position = 0 ;
if (fichier != NULL)
{
while (caractereActuel != EOF){
Crocandrew
Messages postés22Date d'inscriptionmercredi 21 novembre 2007StatutMembreDernière intervention 7 avril 20104 15 avril 2009 à 11:02
AAh oui juste merci !
Mais j'ai toujours ce warning la , pous la ligne que j'ai mise en rouge :
passing arg 2 of 'strcat' makes pointer from integer withut a cast ...
je t'ai remis le code à partir de mes déclarations de variables ;
FILE* fichier = NULL ;
char caractereActuel ; fichier fopen("bdd.txt", "r"); if (fichier ! NULL)
{
// Boucle de lecture des caractères un à un
do
{
if( caractereActuel != '#')// # est le caractère qui sépare mes noms d'éitions
{
caractereActuel = fgetc(fichier);// On lit le caractère
strcat(mot,caractereActuel); // on le copie dans mot
}
else{
strcpy(TabMaisonEdit[cptEdition].nomEdition,mot); //On copie le mot COMPLET dans le tableau
strcpy("",mot);// la chaine de caractère mot est formatée
caractereActuel = fgetc(fichier); // on avance d'un caractère pour ne pas rester sur le #
cptEdition++;// on augmente d'une édition, pour avancer dans le tableau
}
} while (caractereActuel != EOF);// On continue tant que fgetc n'a pas retourné EOF (fin de fichier)