Chaine de caractere

zincben Messages postés 25 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 5 juin 2004 - 28 nov. 2003 à 16:02
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 - 28 nov. 2003 à 17:38
Bonjour je comprend pas tres bien pourquoi ce code passe bien

#include <stdio.h>
void main() {
FILE *fp;
char nom[10];
fp = fopen("barre.txt", "r+");
if (fp)
{
while( (fscanf(fp, "%s", &nom) != EOF) )
printf("%s",nom);
fclose(fp);
}
}

et celui la ne passe pas à l'execution:
#include <stdio.h>
void main() {
FILE *fp;
char *nom;
fp = fopen("barre.txt", "r+");
if (fp)
{
while( (fscanf(fp, "%s", nom) != EOF) )
printf("%s",nom);
fclose(fp);
}
}

merci
zincben

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 nov. 2003 à 16:33
Seciond exemple:
*nom POINTE SUR LE NEANT !!!
BruNews, ciao...
0
zincben Messages postés 25 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 5 juin 2004
28 nov. 2003 à 16:52
peux tu me faire fonctionner le 2eme exemple en gardant char *nom; ou bien c pas possible/
merci

zincben
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 nov. 2003 à 17:03
*nom doit pointer sur un buffer donc va te ramener au 1er exemple.
BruNews, ciao...
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
28 nov. 2003 à 17:38
ou alors, il te faut alouer de la mémoire (avec malloc ou new)
0
Rejoignez-nous