IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

tableau de caracteres a deux dimensions


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 110
    Points : 27
    Points
    27
    Par défaut tableau de caracteres a deux dimensions
    Bonsoir,

    Je bosse sous windows7 et mon IDE est Code::Block

    J´ai ecris un code en c me permettant de lire et ensuite enregistrer les donnees qui m´interesse dans un tableau de caracteres a deux dimensions.
    - Je lis la variable suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char info[30] = "D12,25FD12,55F11,89FD12,3F";
    - Ensuite je l´enregistre dans le tableau
    t
    .

    - Puis j´aimerais que ma console m´affiche sucessivement:
    12,25
    12,55
    11,89
    12,3
    Helas je n´y arrive pas, car apres le deboggage de mon programme, j´ai constate que l´instruction est a l´origine du message suivant:
    Program received signal SIGSEGV, Segmentation fault.
    .

    J´ai besoin d´aide.
    Merci d´avance.

    Mon programme:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #define max_index 6
    #define element 5
     
    //char info[30] = {'D','1','0',',','0','7','F','D','2',',','3','F','\0'};
    char info[30] = "D12,25FD12,55F11,89FD12,3F";
    char t[max_index][element];
    size_t j,i;
    size_t Number_index = 0; // Number index of table
    size_t N = sizeof(t) / sizeof(t[0]);
    size_t M = sizeof(t) / sizeof(t[j][0]);
     
    void readandparse(char * pointer)
    {
      char data;
      int k;
      for(k = 0; pointer[k] != 0; k++)
      {
        data = pointer[k];
     
        if(data == 'F')
        {
          printf("Reception du caractere: F!\n");
        }
        else if(data == 'D')
        {
          printf("Reception du caractere D: !\n");
        }
        else
        {
          // Parcourons les indices du tableau  de
          // t[0] a t[max_index - 1]
          for(j = 0; j < N; j++)
          {
            // Pour chaque element t[j] du tableau,
            // ecrivons les donnees dans t[j]
            //de t[j][0] a t[j][element - 1]
     
            for(i = 0; i < M; i++)
            {
              t[j][i] = data; // Write data into string with two dimensions
               printf("%s", t[j][i]);
            }
             printf("\n");
           }
        }
      }
    }
     
     main()
    {
        readandparse(info);
        return 0;
    }

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    "%s" va lire les caractère jusqu'à rencontrer un caractère d'espacement ( '\t', '\n' ou ' ').
    Je pense que getdelim pourrait t'intéresser mais ce n'est pas portable.

    Sinon tu as : scanf("%[^,]", t[i]);" qui lira jusqu'à rencontrer une virgule.

    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char t[max_index][element];
    size_t N = sizeof(t) / sizeof(t[0]);
    size_t M = sizeof(t) / sizeof(t[j][0]);
    size_t M = sizeof(t) / sizeof(t[j][0]); te donnera le nombre d'élément total de ton tableau. Si tu veux le nombre d'élément d'une ligne, c'est : size_t M = sizeof(t[0])/sizeof(t[j][0]);.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 110
    Points : 27
    Points
    27
    Par défaut
    Bonsoir,

    comme tu me l´as suggere, j´ai utilise les parametres suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char info[30] = "D12,25FD12,55F11,89FD12,3F";
    size_t N = sizeof(t) / sizeof(t[j][0]);// Nombre d'éléments total du tableau
    size_t M = sizeof(t[0]) / sizeof(t[j][0]); // Nombre d´elements d´une ligne
    Mais jusqu´ici l´instruction printf("%[^,]", t[i]); ne me permet pas de lire a la console les donnees contenu par "info".

    Bref je desire obtenu ceci a la console:
    12,25
    12,55
    11,89
    12,3

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 110
    Points : 27
    Points
    27
    Par défaut
    J´ai essaye ceci printf("%c",t[j][i]); et je suis plus ou moins satisfais.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 110
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    J´ai atteins mon objectif, car la console affiche les resultats que je desiraient:

    Reception du caractere D: !

    12,25
    Reception du caractere: F!


    Reception du caractere D: !

    12,55
    Reception du caractere: F!


    Reception du caractere D: !

    11,89
    Reception du caractere: F!


    Reception du caractere D: !

    12,3
    Reception du caractere: F!


    Process returned 0 (0x0) execution time : 0.041 s
    Press any key to continue.
    Merci encore pour l´aide.

    Mon programme final:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #define max_index 6
    #define element 5
     
    char info[] = "D12,25FD12,55FD11,89FD12,3F";
    char t[max_index][element];
     
    size_t j = 0;
    size_t i = 0;
     
    size_t Number_index = 0; // Number index of table
     
    size_t N = sizeof(t) / sizeof(t[j][0]);// Nombre d'élément total du tableau
    size_t M = sizeof(t[0]) / sizeof(t[j][0]); // nombre d´elements d´une ligne
     
     
    void readandparse(char * pointer)
    {
      char data;
      int k;
      for(k = 0; pointer[k] != 0; k++)
      {
        data = pointer[k];
     
        if(data == 'F')
        {
          printf("\n");
          printf("Reception du caractere: F!\n");
          printf("\n");
        }
        else if(data == 'D')
        {
          printf("\n");
          printf("Reception du caractere D: !\n");
          printf("\n");
          i = 0;
          j = 0;
        }
        else
        {
          if(j < N)
          {
            if(i < M)
             {
               t[j][i] = data; // Write data into table t 
               printf("%c", t[j][i]);
               ++i;
               ++j;
             }
          }
        }
      }
    }
     
     main()
    {
        readandparse(info);
        return 0;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  2. Réponses: 1
    Dernier message: 18/11/2005, 11h38
  3. Réponses: 13
    Dernier message: 13/10/2005, 16h03
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo