Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/03/2007, à 20: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, à 20:49)


Que cherchait à faire l'Homme quand il a découvert que la vache donnait du lait ?

Hors ligne

#2 Le 20/03/2007, à 20: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, à 20: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