Bonjour
J'arrive a lire dans un fichier et a placer son contenu dans un tableau.
Le probleme est que le texte contenu dans le fichier contient des retours chariot et je ne veux pas en tenir compte.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
for (i=0 ; i<81 ; i++) /* boucle pour lire dans le fichier */
    {
    if (fscanf (fichier, "%c", &y) == 1) /* lecture d'un caractère*/
        {
        if (y!=13) /* code ascii du retour chariot */
            x[i] = y; /* réussi => on le stocke */
        }
voici le contenu du fichier texte:
----8---1
--7--9-24
---6-1---
-51---8--
----274--
4---95--3
71------5
865----32
-24------

ce que je voudrais stocker dans le tableau:
----8---1--7--9-24---6-1----51---8------274--4---95--371------5865----32-24------

voici la source entiere:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
 
#include <stdio.h>
 
 
int main ()
{
FILE *fichier ;
int i ;
int x[81], y ;
 
/* ouverture du fichier 'grille.txt' pour lecture (r) en mode texte (t) */
fichier = fopen ("grille.txt", "rt") ;
/* en cas d'échec de l'ouverture, le pointeur est NULL: intercepter ce cas */
if (fichier == NULL)
    {
    /* message d'alerte et fin du programme */
    printf ("Problème d'ouverture du fichier grille.txt\n") ;
    return 0;
    }
for (i=0 ; i<81 ; i++) /* boucle pour lire dans le fichier */
    {
    if (fscanf (fichier, "%c", &y) == 1) /* lecture d'un caractère*/
        {
        if (y!=13) /* code ascii du retour chariot */
            x[i] = y; /* réussi => on le stocke */
        }
        else /* échec */
            {
            printf ("Erreur ligne %d\n", i) ; /* message */
            fclose (fichier) ; /* fermeture du fichier */
            return 0; /* arrêt du programme */
            }
        }
printf ("\nVoila :\n"); /* affichage des éléments du tableau */
for (i=0 ; i<81 ; i++)
    printf ("%c", x[i]);
fclose (fichier) ; /* fermeture du fichier */
return 0;
}
j'ai aussi remarque en mettant printf ("%d", x[i]); au lieu de printf ("%c", x[i]); que ce ne sont pas des codes ascii qui sont stocké dans y mais des codes du genre 2147348525

merci