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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[c] String

n°1268830
Sve@r
Posté le 17-12-2005 à 00:56:01  profilanswer
 

Reprise du message précédent :

Mackila a écrit :

Rigole pas j'ai déja fait ca, voulais faire une macro avec du printf dedans, et les ... des macros c'est spécial GCC (et j'avais du codewarrior).
 
Attendez que je la retrouve...
 
edit : trouvé :D
patapé hein  :)  
 

Code :
  1. // LOG()
  2. // Utilisation :
  3. // LOG((const char * format, ...)) ;
  4. // ATTENTION A LA DOUBLE PARENTHESES !!!
  5. #define LOG(args) do             \
  6. {                                \
  7. extern BYTE commandeEnCours ;\
  8. putstring("\rLog: " ) ;       \
  9. printf args ;                \
  10. fflush(stdout) ;             \
  11. putstring("\r\n" ) ;          \
  12. if ( !commandeEnCours )      \
  13. {                            \
  14.  putstring(">" ) ;         \
  15.  afficheBufferEntree() ;  \
  16. }                            \
  17. } while(0)


 
Utilisation typique :

Code :
  1. LOG(("free_HC_TD() : descripteur incorrect (index=%d, align=%d)", index, align)) ;


 
Bon d'accord je reconnais, ca fait bizarre, mais ca marche...


 
Si tu mettais des parenthèses au "printf" t'aurais pas besoin d'en mettre des doubles lorsque t'appelles ta macro !!!

mood
Publicité
Posté le 17-12-2005 à 00:56:01  profilanswer
 

n°1268835
Mackila
Posté le 17-12-2005 à 01:19:20  profilanswer
 

Sve@r a écrit :

Si tu mettais des parenthèses au "printf" t'aurais pas besoin d'en mettre des doubles lorsque t'appelles ta macro !!!


 
Bah essaie pour voir  :whistle:

n°1268849
matafan
Posté le 17-12-2005 à 04:50:31  profilanswer
 

Mackila a écrit :

Bah essaie pour voir  :whistle:


Toi, tu connais pas les macros variadiques :

Code :
  1. #include <stdio.h>
  2. #define LOG(format, ...) do {                                   \
  3.         /* machin */                                            \
  4.         printf("\rLog: " format, ## __VA_ARGS__);               \
  5.         /* truc */                                              \
  6. } while (0)
  7. int
  8. main()
  9. {
  10.         LOG("toto=%d tata=%d", 1, 2);
  11.         return 0;
  12. }


Message édité par matafan le 17-12-2005 à 04:55:42
n°1268870
Mackila
Posté le 17-12-2005 à 10:40:25  profilanswer
 

Si.
 

Mackila a écrit :

[...] et les ... des macros c'est spécial GCC (et j'avais du codewarrior).
[...]


n°1268976
matafan
Posté le 17-12-2005 à 16:44:32  profilanswer
 

C'est pas "spécial GCC", c'est dans C99.

n°1269320
coolben
http://www.starbusiness.fr
Posté le 18-12-2005 à 00:06:38  profilanswer
 

merci pour la reponse ca marche nikel

n°1269380
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-12-2005 à 10:18:23  profilanswer
 

coolben a écrit :

merci pour la reponse ca marche nikel


Citation :

merci c'est niquel!


Le français, c'est pas du hasard.
 
Nickel...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1310102
coolben
http://www.starbusiness.fr
Posté le 20-02-2006 à 21:57:02  profilanswer
 

Je cherche depuis quelques temps une fonction qui convertisse un entier en string (char)
Quelqu'un a une idée ?
 
Je trouve bien toute les focntion contraires strtol, atof, ...  
mais par leur reciproque ?

n°1310120
matafan
Posté le 20-02-2006 à 22:10:55  profilanswer
 

sprintf, snprintf.
 
Quand on a une question, en general on cree un nouveau sujet au lieu de poster dans un sujet qui n'a rien a voir.

n°1310222
coolben
http://www.starbusiness.fr
Posté le 21-02-2006 à 06:38:31  profilanswer
 

merci
 
il me semblait que depuis la creation de ce topic je parle toujours de c et de chaine de caractere, non ?

mood
Publicité
Posté le 21-02-2006 à 06:38:31  profilanswer
 

n°1311721
coolben
http://www.starbusiness.fr
Posté le 22-02-2006 à 18:12:10  profilanswer
 

en utilisant la fonction sprintf j'obtient ce message d'erreur a la compilation que je n'arrive pas a resoudre  

Citation :

passage de l'argument n°1 de sprintf transforme un entier en un pointeur sans transtypage


 
pourtant voici mon code :
 

Citation :

int idcourse, val;
char * strval;
idcourse = 123;
...
val = sprintf(strval,"%i", idcourse);


 :??:

n°1311736
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-02-2006 à 18:33:51  profilanswer
 

toi t'as toujours pas compris que la mémoire ça s'allouait avant de s'utiliser [:petrus75]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1311743
coolben
http://www.starbusiness.fr
Posté le 22-02-2006 à 18:43:12  profilanswer
 

Mille excuse, je viens de comprendre mon probleme et j'avais oublier de mettre l'etoile dans l'affectation.
J'avais  

Citation :

char * str,strval


alors que je doit mettre  :

Citation :


char * str,*strval


 
encore desolé de ce probleme.
 
oups pour le malloc que j'avais oublie
 
merci Harkonnen

n°1311762
skelter
Posté le 22-02-2006 à 19:18:42  profilanswer
 

coolben a écrit :


 
pourtant voici mon code :
 

Citation :

int idcourse, val;
char * strval;
idcourse = 123;
...
val = sprintf(strval,"%i", idcourse);


 :??:


 
c'est mieux si tu montre le vrai code

n°1311839
Sve@r
Posté le 22-02-2006 à 21:35:49  profilanswer
 

Harkonnen a écrit :

toi t'as toujours pas compris que la mémoire ça s'allouait avant de s'utiliser [:petrus75]


Boaf... avec un peu de bol il tapera dans une zone de libre.
C'est le nouveau jeu: la "roulette russe en C". Tant que le programme fonctionne, tout va bien...  :D  :D  :D

Message cité 1 fois
Message édité par Sve@r le 22-02-2006 à 21:45:14

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1312693
coolben
http://www.starbusiness.fr
Posté le 23-02-2006 à 22:13:17  profilanswer
 

J'aurai bien fait un copier coller de mon code mais comme il n'etait pas sur le meme pc, c'est pas pratique ...
 
Maintenant je vais m'attaquer a faire des struct ...

n°1312753
Elmoricq
Modérateur
Posté le 23-02-2006 à 23:58:47  profilanswer
 

Sve@r a écrit :

C'est le nouveau jeu: la "roulette russe en C". Tant que le programme fonctionne, tout va bien...  :D  :D  :D


 
"nouveau" depuis 1970, tu veux dire ? [:dawa]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Pascal] Chaine de caractere (string)" dans un string
opération sur stringerreur de segmentation sur string
Extraire des int et des float d'un string [résolu][resolu][PHP] extraction d'un operateur dans une string
Comment raccourcir la string de 3 caractere ?std::string
convertir une string en integer[java][debutant] string vers date
Plus de sujets relatifs à : [c] String


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