Problème de lecture a partir d'un fichier.
Résolu
strix-dev
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
strix-dev Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
strix-dev Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Salut!
je veux faire un programme qui stock une chaine de caractère dans un fichier, et puis le lire et l'afficher dans l'écran. Mais quand j'exécute le programme, il m'affiche juste le 1er mot, par exemple quant j'entre "Aide moi" il m'affiche juste "Aide".
Voila le Code source:
Merci
je veux faire un programme qui stock une chaine de caractère dans un fichier, et puis le lire et l'afficher dans l'écran. Mais quand j'exécute le programme, il m'affiche juste le 1er mot, par exemple quant j'entre "Aide moi" il m'affiche juste "Aide".
Voila le Code source:
#include <stdio.h> #include <stdlib.h> int main() { char t[30]; FILE *f; f=fopen("savegarde.txt", "w"); printf("Donner un mot:"); gets(t); fprintf(f,"%s", t); fclose(f); f=fopen("savegarde.txt", "r"); fscanf(f,"%s", t); printf("%s", t); fclose(f); return 0; }
Merci
A voir également:
- Problème de lecture a partir d'un fichier.
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Fichier rar - Guide
3 réponses
C'est parce que fscanf() s'arrête quand il y a un espace.
Utilise fread() avec la taille de la chaine pour tout lire.
Utilise fread() avec la taille de la chaine pour tout lire.
#include <stdio.h> #include <stdlib.h> int main() { char t[30]; FILE *f; int size; f=fopen("savegarde.txt", "w"); printf("Donner un mot:"); gets(t); fprintf(f,"%s", t); fclose(f); size = strlen(t); f=fopen("savegarde.txt", "r"); fread(t, size, 1, f); printf("%s", t); fclose(f); return 0; }
strix-dev
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
Merci. It's work ;)
Tu peux, soit créer une file de caractère (non pas un char, mais bien une file). Je ne connais que les codes pour faire de l'objet pour faire ça, je suis un informaticien encore à ses débuts.
Soit, la solution de facilité serai de ne pas mettre un espace et commencer chaque mot par un espace. ex : "aide moi" devient "AideMoi".
Tu peux encore créer une nouvelle chaine de caractère pour chaque mot et les afficher en plaçant des arguments.
(Si un VRAI pro passe par ici et vois que je dis n'importe quoi qu'il m'arrête tout de suite ^^)
Soit, la solution de facilité serai de ne pas mettre un espace et commencer chaque mot par un espace. ex : "aide moi" devient "AideMoi".
Tu peux encore créer une nouvelle chaine de caractère pour chaque mot et les afficher en plaçant des arguments.
(Si un VRAI pro passe par ici et vois que je dis n'importe quoi qu'il m'arrête tout de suite ^^)