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

 


Dernière réponse
Sujet : [C++] problème de fscanf : comment faire de l'alloc dyna de mem ?
bjone bin c boeuf.... :lol:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
bjone bin c boeuf.... :lol:
Jar Jar

bjone a écrit a écrit :

torpe23, pour ton blem, tu peux utiliser une string à la quelle tu va ajouter chaque octet que tu va lire, la string se redimentionnant toute seule... mais bon c boeuf...


AAAAAAAARRRGGHHHH !!! Pitié, surtout ne faites jamais de trucs comme ça !!!

bjone torpe23, pour ton blem, tu peux utiliser une string à la quelle tu va ajouter chaque octet que tu va lire, la string se redimentionnant toute seule... mais bon c boeuf...
Jar Jar

Verdoux a écrit a écrit :

Tu dois confondre la lib readline et la méthode getline de iostream.



Non, je confondais avec la fonction getline de la glibc2. Désolé.  
Et pis z'avez qu'à pas faire de C++, d'abord.

verdoux

Jar Jar a écrit a écrit :

 
Ça marche en C, mais sur les systèmes GNU.
Pour le C++, je viens d'essayer sous Solaris avec g++, et c'est niet.  




Tu dois confondre la lib readline et la méthode getline de iostream.

Jar Jar

legreg a écrit a écrit :

getline pas portable??
 
Il suffit pourtant d'avoir un compilateur C++,
il me semble.
 
Bon evidemment ca marche pas en C..



Ça marche en C, mais sur les systèmes GNU.
Pour le C++, je viens d'essayer sous Solaris avec g++, et c'est niet.

LeGreg getline pas portable??
 
Il suffit pourtant d'avoir un compilateur C++,
il me semble.
 
Bon evidemment ca marche pas en C..
 
LEGREG
Jar Jar

legreg a écrit a écrit :

string (chaine dynamique) et getline.



getline, c'est génial, mais c'est pas portable :'(

LeGreg fscanf ou fgets ne te permettent pas de faire ca.
Soit tu le fais en plusieurs passes
avec des realloc quand tu as besoin de rajouter
des caracteres,
soit tu utilises les fonctions de la librairie standard
C++ qui te font ca tout seuls:
string (chaine dynamique) et getline.
 
A+
LEGREG
antp

Jar Jar a écrit a écrit :

(et pas fscanf, qui PU LE PATé)




 
C'est bien connu:
 
http://fscanf.ca.pu.le.pate.ath.cx/

deathsharp

cycojesus a écrit a écrit :

:??:  
si tu connais pas la taille ça va être dure !
 
un buffer a par définition une taille fixe, suffisemment importante.
 
sinon l'allocation dynamique c'est :

char* buffer;
buffer = (char*)malloc(taille_de_ton_buffer_en_octets);
...
free(buffer);
 




 
en C c'est ca mais surrement pas en C++ (qui est marker sur le topic )

Jar Jar Je ne vois qu'une solution : utiliser fgets (et pas fscanf, qui PU LE PATé), avec une limitation en taille, et si la ligne n'est pas finie, hop ! un autre fgets (bref, une boucle qui continue tant qu'on n'arrive pas à la fin de la ligne) qui viendra prolonger la chaîne (realloc 15 y0uR m45t3R).
cycojesus :fou:
torpe23 je sais comment on fait un alloc quand même (!), mais ce n'était pas la question !
cycojesus :??:  
si tu connais pas la taille ça va être dure !
 
un buffer a par définition une taille fixe, suffisemment importante.
 
sinon l'allocation dynamique c'est :

char* buffer;
buffer = (char*)malloc(taille_de_ton_buffer_en_octets);
...
free(buffer);
torpe23 j'ai déclaré un char *buffer. Mais lorsque je fais mon fscanf("%s" ), comment allouer assez de mémoire à buffer, étant donné que je ne connais pas la taille de mon %s ? Je veux bien une solution, si vous savez !
 
merci d'avance

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)