[affichage] d'un fichier à l'écran
Résolu
davdoo91
Messages postés
31
Date d'inscription
Statut
Membre
-
davdoo91 Messages postés 31 Date d'inscription Statut Membre -
davdoo91 Messages postés 31 Date d'inscription Statut Membre -
Bonjou,
J'aurais saoir ce qui ne va pas dans ma ligne de programme.
Pour info, je veux afficher ce qu'il y a dans le fichier à l'écran comme ceci:
printf("Nom\n");
fgets(stdout,20,fich);
printf("prenom\n");
fgets(stdout,20,fich);
merci de vos réponses
J'aurais saoir ce qui ne va pas dans ma ligne de programme.
Pour info, je veux afficher ce qu'il y a dans le fichier à l'écran comme ceci:
printf("Nom\n");
fgets(stdout,20,fich);
printf("prenom\n");
fgets(stdout,20,fich);
merci de vos réponses
Configuration: Windows XP Internet Explorer 6.0
23 réponses
- 1
- 2
Suivant
-
la normalement ca devrais marcher mais ca m affiche nimporte koi :
fich = fopen(adher.nom, "r");
printf("\nNom:");
fgets(tab,sizeof tab,fich);
fputs(tab,stdout);
ou tab déclaré en tableau de caractere
-
-
non mais en fait fich correspond à mon fichier où contient la donné nom, et je veux l'afficher à l'écran.
Mais sinon j 'ai essayé ta méthode ca ne marche pas. -
Salut,
C'est normal que tu arrives pas à afficher, tu saisies dans ta chaîne mais tu affiches pas ta chaîne !
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Tu es sous Linux ?
-
-
Essaye de passer par une valeur intermédiaire qui stockera la chaine de caractère.
Sinon c'est quoi l'erreur ? Y a un msg d'erreur ? Ou ça bug ?
-
C'est quoi le nom de ton fichier ?
Il est dans la structure adher ? nom c est un char* ?
-
Si on est bien en 'C':
char tab[100]; FILE *fich; fich=fopen("...","r"); if (fich==NULL) { bla bla erreur } else { fgets(tab,100,fich); printf("Nom\n%s\n",tab); } -
Vi mais il a l'air de vouloir utiliser stdout directement lui :)
-
c bon j ai trouvé merci de vos réponse
en fait qu en je tester j avais ouvert le fichier en écriture
puis je le réouvrais en lecture sans l avoir fermé au préalable avec fclose. -
Par contre j'ai une autre question : je voulais savoir comment faire pour supprimer les retours chariot mis dans mon tableau tab.
Car par exemple dans mon fichier j ai ca:
4
8
1984
et j aurais aimé l afficher comme ca : 4/8/1984 -
Je ne suis pas sûr de comprendre. Tu pourrais montrer le fichier d'entrée et la partie du prog. qui affiche la date ?
-
Salut,
Soit c'est juste pour l'affichage et dans ce cas du peux faire un truc genreprintf("Date : %c/%c/%c%c%c%c\n",tab[0],tab[1],tab[2],tab[3],tab[4],tab[5]
Si les retours chariots gênent, tu peux décaler les indices des tab pour éviter cela.
Soit tu veux absolument avoir un tableau avec un format datechar tab2[10]; tab2[0]=tab[0]; tab2[1]='/'; ...
-
Programe affichage :
fich = fopen(adher.nom, "r");
printf("\nNom :");
fgets(tab,20,fich);
fputs(tab,stdout);
printf("prenom : ");
fgets(tab,20,fich);
fputs(tab,stdout);
printf("\ndate de naissance : ");
fgets(tab,20,fich);
fgets(tab2,20,fich);
fgets(tab3,20,fich);
contenu du fichier :
nom
prenom
4
8
1984
nom de la rue
ville
code postale
sport -
Tu concatènes tab, tab2 et tab3 après la saisie de la date sans oublier les '/' entre les jours/mois/année.
-
-
Avec strcat :
strcat(tab,"/"); strcat(tab,tab2); strcat(tab,"/"); strcat(tab,tab3); fputs(tab,stdout);
Mais si tu veux faire vraiment propre :printf("%02d/%02d/%04d\n", atoi(tab), atoi(tab2), atoi(tab3) );Pour explication:
%02d: Masque pour une donnée entière sur 2 positions zérotée à gauche
atoi(): Conversion d'une chaîne de caractères en entier -
Je dirais même plus, faire un sprintf pour avoir le tout dans un char * ^^ C'est encore plus propre ^^ Pis pas besoin de atoi comme ça (sauf si tu veux mettre les 0 devant !
- 1
- 2
Suivant