#1 Le 20/03/2007, à 19:27
- Zoltan_K
[Résolu] Problème de lecture de fichier texte en C
Bonsoir,
Je débute en C et je me heurte à un soucis de lecture de fichiers...
En effet, au lieu de lire une ligne de caractères, la console n'affiche qu'un �
Et je ne vois pas vraiment d'où peut venir le soucis...
Voilà le code en question (rien de très compliqué pourtant...) :
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE* fichier = NULL;
int caractere = 0;
fichier = fopen("test.txt", "w+");
if (fichier != NULL)
{
fputs("Ceci est une ligne de test.", fichier);
// Boucle de lecture des caractères un à un
do
{
caractere = fgetc(fichier); // On lit le caractère
printf("%c", caractere); // On l'affiche
} while (caractere != EOF); // On continue tant que fgetc n'a pas retourné EOF
fclose(fichier);
}
printf("\n\n");
return 0;
}
A tout hasard, je met aussi la commande que je fais pour compiler avec le résultat que j'obtiens :
pere@noel:~/Prog_C/SdZ/Chap_2$ gcc fichiers.c -o fichiers
pere@noel:~/Prog_C/SdZ/Chap_2$ ./fichiers
�
Le fichier texte est correctement créé et rempli. Je peux ensuite l'éditer et le modifier.
Là où ça devient énervant, c'est que le même code fonctionne très bien sous windows...
Par contre, j'ai compilé et executé le même fichier à la fac sur freebsd et j'obtenais le même résultat que chez moi...
Est-ce qu'il s'agit d'un problème d'encodage ?
Pour info, je suis sous Ubuntu 6.10
D'avance, merci de vos réponses
Dernière modification par Zoltan_K (Le 20/03/2007, à 19:49)
Que cherchait à faire l'Homme quand il a découvert que la vache donnait du lait ?
Hors ligne
#2 Le 20/03/2007, à 19:38
- best_friend_fr
Re : [Résolu] Problème de lecture de fichier texte en C
Salut
Lorsque tu fais
fichier = fopen("test.txt", "w+");
tu efface ton fichier pour pouvoir écrire dedans
Pour lire le fichier, mets "r" à la place de "w+".
Pour écrire à la fin du fichier, mets "a"
Sache aussi que tu ne peux pas écrire puis relire tout de suite ce que tu as écris, car le pointeur de fichier bouge quand tu écris. Tu n'obtiendras que le caractère end of file (ton fameux ?)
Bon courage
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 20/03/2007, à 19:49
- Zoltan_K
Re : [Résolu] Problème de lecture de fichier texte en C
Merci !!!
C'était bien ça qui clochait.
En y repensant, ça parait logique d'ailleurs. Mais bon, les pointeurs sont un concept plutôt nouveau pour moi, et je ne trouve pas ça forcement aisé à comprendre au début, même si ça a l'air d'être un outil très puissant.
Bon, sur ce, je fonce reprendre mon apprentissage du C !
Encore merci !
Et hop ! Sujet résolu !
Que cherchait à faire l'Homme quand il a découvert que la vache donnait du lait ?
Hors ligne