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

  FORUM HardWare.fr
  Programmation
  C++

  [SCANF] Allouer la mémoire automatiquement ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SCANF] Allouer la mémoire automatiquement ?

n°228276
_john_doe_
Posté le 15-10-2002 à 16:58:32  profilanswer
 

Je voudrais lire une chaine de caractère au clavier mais je ne connais pas sa longueur à l'avance.
 
Je voudrais donc savoir s'il existe une option de scanf (ou une autre fonction) qui permet d'allouer la quantité de mémoire nécessaire.
 
Merci :)
 

mood
Publicité
Posté le 15-10-2002 à 16:58:32  profilanswer
 

n°228308
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 15-10-2002 à 17:31:32  profilanswer
 

en C c'est impossible.
 
utilise plutot fgets() de stdio.h pour lutter contre les dépacement de capacité en limitant le nombre de caractères lus.
 

Code :
  1. const size_t n=1983;
  2. char buffer[n];
  3. fgets(buffer, n, stdin);


 
 
fgets lit au maximum n-1 caractère sur le fichier passé en paramètre 3 (ici l'entrée standard) et stocke les caractères lus dans buffer


Message édité par Taz@PPC le 15-10-2002 à 17:32:16

---------------
du bon usage de rand [C] / [C++]
n°228310
HelloWorld
Salut tout le monde!
Posté le 15-10-2002 à 17:35:52  profilanswer
 

question bete : stdin etant un fichier, je peux faire un fseek dessus une fois que j'ai detecte la saisie d'un text pour savoir quelle taille allouer au buffer ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°228312
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 15-10-2002 à 17:45:09  profilanswer
 

jamais essayé directement (avec un freopen oui). mais ca doit sans doute etre possible


---------------
du bon usage de rand [C] / [C++]
n°228379
_john_doe_
Posté le 15-10-2002 à 20:12:04  profilanswer
 

aaaaaah c'est pas bête du tout :):)
 
Merci bien, je vais tenter ça :)

n°228485
Musaran
Cerveaulté
Posté le 16-10-2002 à 00:53:39  profilanswer
 

HelloWorld a écrit a écrit :

question bete : stdin etant un fichier, je peux faire un fseek dessus une fois que j'ai detecte la saisie d'un text pour savoir quelle taille allouer au buffer ?



fseek ne marche pas sur les "fichiers console".
Mais je ne sais plus où je l'ai lu...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

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

  [SCANF] Allouer la mémoire automatiquement ?

 

Sujets relatifs
Faire un script qui ferme un pop-up automatiquement .... possible ?[PERL] Problème d'allocation de la mémoire
[VB] Runtime error - Overflow .... PB Memoire ????ouvrir une nouvelle fenetre automatiquement + gestion des variables ?
Comment reloader en mémoire des ClassComment fermer automatiquement une page apres son exécution?
UPLOAD une image puis créer automatiquement le fichier VIGNETTE ...création de form - perte de mémoire inside
Remplir et submit un formulaire automatiquement...Comment enregistrer automatiquement une page PHP en HTML ? [RESOLU]
Plus de sujets relatifs à : [SCANF] Allouer la mémoire automatiquement ?


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