Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1262 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [ C ] afficher une seul ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ C ] afficher une seul ligne

n°908801
lcstriker
Posté le 26-11-2004 à 20:25:55  profilanswer
 

voila, je pense que la premiere boucle incrementerai le compteur, qui servirait au malloc, et pour renvoyer la premiere ligne du fichier lut, afin de l'afficher.
 
mais sa marche pas du tt.
si quelqu'un a une idee pour pouvoir afficher une seul ligne du fichier, merci d'avance.
 
int     main(const int fd)
{
  char  s;
 
  while ((s = get_next_line(0)))
    {
      my_putstr(s);
      free(s);
    }
  return (0);
}
 
char    *get_next_line(const int fd)
{
  int   i;
  int   nb_read;
  char  *s;
  char  buffer_read[BUFF_SIZE1];
 
  i = 0;
  while (nb_read = read(fd, buffer_read, BUFF_SIZE1) != '\n')
    {
      i++;
      my_put_nbr(i);
    }
  if (nb_read = read(fd, buffer_read, BUFF_SIZE1) == '\n')
    {
      s = malloc(i+1 * sizeof(char));
      strncpy(s, nb_read, s);
      my_putstr(s);
    }
  return (s);
}

mood
Publicité
Posté le 26-11-2004 à 20:25:55  profilanswer
 

n°908805
bjone
Insert booze to continue
Posté le 26-11-2004 à 20:33:56  profilanswer
 

fgets
puts

n°908806
bjone
Insert booze to continue
Posté le 26-11-2004 à 20:36:29  profilanswer
 

sinon s = malloc
à partir de là l'ancien s est perdu
donc strncpy recopie s sur lui même (et non l'ancien sur le nouveau)
 
de plus:
char *strncpy(char *dest, const char *src, size_t n);
 
acec strncpy( s, nb_read,s );
tu fais n'importe quoi.
 
regarde realloc

n°908895
bonyama
Posté le 26-11-2004 à 22:39:42  profilanswer
 

houla recommence tout §
deja 1 truc :
declaration => "char  s;"
et tu retournes "char  *get_next_line(const int fd)"
 
Reflechis plus au code tu pars en vrille la!
conseil de tek3 :)

n°908904
darkoli
Le Petit Dinosaure Bleu
Posté le 26-11-2004 à 23:01:12  profilanswer
 

Et aussi n'oublie que lorsque tu fais une allocation mémoire il est (peu) probable que l'allocation soit impossible. Donc teste le retour de la fonction malloc !

Code :
  1. char* s=NULL;
  2. [...] /* La variable "s" n'a pasencore été modifiée */
  3. s=(char*)malloc(sizeof(char)*(taille_chaine+1));
  4. if (s == NULL)
  5. {
  6.   Libération_de_se_qui_doit_l'être();
  7.   Un_petit_message();
  8.   exit(EXIT_FAILURE);
  9. }
  10. s[0]='\0'; /* Ou ce que tu veux d'autres ... */

En gros voilà ce à quoi ça devrait ressembler.
Bon courage.


Message édité par darkoli le 26-11-2004 à 23:02:37

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [ C ] afficher une seul ligne

 

Sujets relatifs
seg fault avant la 1ere ligne du main !!??Afficher l'uptime d'un serveur Windows avec php
php, pour ne pas afficher d'images...Afficher tableau en ligne...... explications inside !
afficher tous les sous-dossiers sur Outlook[Batch] commande pour afficher en plein écran
afficher la valeur d'un pointeur en adacomment se connecter à une BD de free en ligne de commande
Supprimer une ligne d'une table MySQL 
Plus de sujets relatifs à : [ C ] afficher une seul ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR