Bonjour,

Je suis débutant en c et je suis actuellement un cours sur internet, maintenant j'en suis au chapitre sur le traitement des fichier (lecture et écriture).
Mon problème est le suivant:

en voulant tester des bouts de code assez simples, je ne recois pas le résultat escompté.

Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int chaine;
 
    FILE* fichier = NULL;
 
    fichier = fopen("test.txt", "r");
    if (fichier != NULL)
    {
        chaine = fgetc(fichier);
        printf("%c", chaine);
        fclose(fichier);
    }
    else
    printf("Le fichier n'a pu etre ouvert");
 
    return 0;
}
Ne renvois rien, alors que j'ai le caractère 'A' d'écrit dans mon fichier test.txt.

Ou encore:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000 // Tableau de taille 1000
 
int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    char chaine[TAILLE_MAX] = ""; // Chaîne vide de taille TAILLE_MAX
 
    fichier = fopen("test1.txt", "r");
 
    if (fichier != NULL)
    {
        fgets(chaine, TAILLE_MAX, fichier); // On lit maximum TAILLE_MAX caractères du fichier, on stocke le tout dans "chaine"
        printf("%s", chaine); // On affiche la chaîne
 
        fclose(fichier);
    }
 
    return 0;
}
qui me renvois un caractère bizarre et le premier caractère de la chaine, alors que dans mon test1.txt j'ai cette chaine:
"Ceci est une chaine."

Et enfin, le seul code où fgetc fonctionne:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000 // Tableau de taille 1000
 
 
int main(int argc, char *argv[])
{
    FILE* fichier = NULL;
    int caractereActuel = 0;
 
    fichier = fopen("test1.txt", "r");
 
    if (fichier != NULL)
    {
        // Boucle de lecture des caractères un à un
        do
        {
            caractereActuel = fgetc(fichier); // On lit le caractère
            printf("%c", caractereActuel); // On l'affiche
        } while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
 
        fclose(fichier);
    }
 
    return 0;
}
Qui me renvois " C e c i e s t u n e c h a i n e . " avec un caractère bizarre avant le premier 'c'.
Vous noterez que cette fois des espaces ont été ajoutés entre chaque caractère alors qu'il ne lui est demandé nulle part de faire ça.

Quelqu'un aurait une idée de où peut provenir le problème, car je suis coincé depuis des heures à cette étape du cours sans pouvoir passer à autre chose.

Merci