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 :

probleme d affichage banal


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut probleme d affichage banal
    J,aimerais que ce code m'affiche la ligne lue SANS sauter de ligne a la fin, pouvez vous regarder le code pour modifier mon prob

    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
     
    #include <fcntl.h>
    #include <unistd.h>
    #include <utmpx.h>
    #include "get_next_line.h"
    #define SIZE_BUFFER 1
     
    int     *malloc(int size);
     
    char            *get_next_line(int fd)
    {
      char          *result;
      char          *temp;
      static int    size;
      static char   buffer;
      static int    i;
     
      size = 0;
      result = malloc(*result);
      while ((i = read(fd, &buffer, SIZE_BUFFER) == 1) && (buffer != '\n'))
        {
          if (((size + 1) % SIZE_BUFFER) == 0)
            {
              temp = malloc(size + 1);
              strcpy(temp, result);
              free(result);
              result = temp;
            }
          size++[result] = buffer;
          size[result] = 0;
        }
      if (i =! 0)
        puts (result);
      free(result);
      return (0);
    }
     
    int     main()
    {
      int   fd;
     
      fd = open("test", O_RDONLY);
      get_next_line(fd);
      return (0);
    }

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Remplace
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    printf("%s", result);
    fflush(stdout);

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    ok merci DaZumba ensuite jai quelques problemes avec le malloc
    c toujours la meme erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    warning: assignment from incompatible pointer type
    comment changer cela

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Tout d'abord, il est inutile de prototyper le malloc() toi meme. Il suffit d'include stdlib.h.
    Ensuite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    result = malloc(*result);
    Tu veux certainement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    result = malloc(sizeof *result);
    ce qui n'est suffisant que pour contenir un seul caractere (insuffisant pour une chaine de caractere). Il est plus interessant d'allouer une taille plus grande tout de suite. Enfin, regarde du cote de realloc() pour augmenter/diminuer la taille associee a result.
    N'oublie pas de tester tous les retours des fonctions qui peuvent echouer (malloc et open, notamment).

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    mer ci beaucoup ca marche a merveille

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par DaZumba
    Tout d'abord, il est inutile de prototyper le malloc() toi meme. Il suffit d'include stdlib.h.
    D'autant que le prototype de malloc est

    void *malloc(size_t size);

    et pas

    int *malloc(int size);

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

Discussions similaires

  1. [VB.NET] Probleme d'affichage entre ListBox/TextBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/08/2004, 11h02
  2. [VB.NET] Probleme d'affichage de controle
    Par mic56 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2004, 15h03
  3. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46
  4. [langage] Problème d'affichage
    Par marcoss dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2003, 13h05
  5. IE [Applet] Plug-in problème d'affichage
    Par Tonton Luc dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/06/2003, 08h28

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