D - newbees printf
- Florian Lavrard (8/8) May 10 2003 i've a little problem with printf()
- Helmut Leitner (19/27) May 10 2003 You are not quite clear about your problems.
- Florian Lavrard (32/59) May 10 2003 Right, you have not understand, ;-)
-
Carlos Santander B.
(58/58)
May 11 2003
"Florian Lavrard"
escribiσ en el mensaje -
Carlos Santander B.
(29/29)
May 11 2003
"Florian Lavrard"
escribiσ en el mensaje -
Carlos Santander B.
(14/14)
May 11 2003
"Carlos Santander B."
escribiσ en el mensaje - Florian Lavrard (9/38) May 12 2003 thanks but i don't want to import string,
-
Carlos Santander B.
(16/16)
May 13 2003
"Florian Lavrard"
escribiσ en el mensaje
i've a little problem with printf() printf("%d",var); - var could be an int or a char (or other) It don't word gook with char if i use "%d", or don't work good with int if i use "%c"... Have you got some tips please ? thanks Florian
May 10 2003
Florian Lavrard wrote:i've a little problem with printf() printf("%d",var); - var could be an int or a char (or other) It don't word gook with char if i use "%d", or don't work good with int if i use "%c"... Have you got some tips please ?You are not quite clear about your problems. If you have int i=66; char c='A'; you would typically use printf("%d",i); printf("%c",c); for printing. If you want to print the numerical value of the character, you might use printf("%d",(int)c); or even just printf("%d",c); If you want to print the int as character (66=B) you could do it this way printf("%c",i); But maybe I don't understand your problem. Please describe it. -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
May 10 2003
Right, you have not understand, ;-) ( but i'm not sure to use the best english, i'm french) So let's try again with an exemple : error is explained just after source code : template Gcouple(T){ public class couple{ private : private T fst; public : this (T passfst){ this.fst = passfst;} T getFst() {return fst;} void show(){printf("%c",getFst());} } } void main(){ instance Gcouple(int) intcouple; intcouple.couple couple1= new intcouple.couple(1); couple1.show(); printf("\n test COUPLE char \n"); instance Gcouple(char) charcouple; charcouple.couple couplea= new charcouple.couple('a'); couplea.show(); } couplea.show() use printf("%c",...); to print a char >>> .It's right couple1.show() use printf("%c",...); to print a int >>>it's not right Do you understand my problem well ? I hope. ( because this is just an exemple not the the true need i don't want to cast int in char ...) Florian "Helmut Leitner" <leitner hls.via.at> a ιcrit dans le message news: 3EBD1CE8.9A47632 hls.via.at...Florian Lavrard wrote:ifi've a little problem with printf() printf("%d",var); - var could be an int or a char (or other) It don't word gook with char if i use "%d", or don't work good with inti use "%c"... Have you got some tips please ?You are not quite clear about your problems. If you have int i=66; char c='A'; you would typically use printf("%d",i); printf("%c",c); for printing. If you want to print the numerical value of the character, you might use printf("%d",(int)c); or even just printf("%d",c); If you want to print the int as character (66=B) you could do it this way printf("%c",i); But maybe I don't understand your problem. Please describe it. -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
May 10 2003
"Florian Lavrard" <flavrard free.fr.nospam.> escribiσ en el mensaje news:b9ljqq$26qc$1 digitaldaemon.com... | Right, you have not understand, ;-) | ( but i'm not sure to use the best english, i'm french) | | So let's try again with an exemple : | | error is explained just after source code : | | template Gcouple(T){ | public class couple{ | private : | private T fst; | | public : | this (T passfst){ this.fst = passfst;} | T getFst() {return fst;} | void show(){printf("%c",getFst());} | } | } | | void main(){ | | | instance Gcouple(int) intcouple; | intcouple.couple couple1= new intcouple.couple(1); | couple1.show(); | | printf("\n test COUPLE char \n"); | instance Gcouple(char) charcouple; | charcouple.couple couplea= new charcouple.couple('a'); | couplea.show(); | } | | | couplea.show() use printf("%c",...); to print a char >>> .It's right | couple1.show() use printf("%c",...); to print a int >>>it's not right | | Do you understand my problem well ? I hope. | | ( because this is just an exemple not the the true need i don't want to cast | int in char ...) | | | | | Florian | I don't know what the problem is. I compiled and ran it and I got a smiling face and an 'a', and that's what should be since ascii 1 is a smiling face. Now, if you want to print 1, then you should put %d instead of %c. Carlos Santander --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.478 / Virus Database: 275 - Release Date: 2003-05-06
May 11 2003
"Florian Lavrard" <flavrard free.fr.nospam.> escribiσ en el mensaje news:b9ljqq$26qc$1 digitaldaemon.com... | | couplea.show() use printf("%c",...); to print a char >>> .It's right | couple1.show() use printf("%c",...); to print a int >>>it's not right | If you want to print 1 and 'a', try this: void show(){printf("%.*s",toStr(getFst()));} //1 ... //outside template import string; char[] toStr(int i) { return string.toString(i); } //2 char[] toStr(char c) { //3 char [] res; res ~= c; return res; } This leads to a bug. I couldn't use toString instead of toStr in //2 and //3 because dmd complained in //1 that toString() doesn't match (int). I know why's that: because dmd looks for toString inside the class. But wouldn't it be desirable if dmd could look outside the class too? I mean, if it doesn't find a function inside the class, then try inside the module, then inside the imports, etc. Could it be possible? Carlos Santander --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.478 / Virus Database: 275 - Release Date: 2003-05-06
May 11 2003
"Carlos Santander B." <carlos8294 msn.com> escribiσ en el mensaje news:b9lpra$2chc$1 digitaldaemon.com... | ... | This leads to a bug. I couldn't use toString instead of toStr in //2 and //3 | ... My mistake: there's no bug in the code I posted. Getting there led me to that bug. Carlos Santander --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.478 / Virus Database: 275 - Release Date: 2003-05-06
May 11 2003
thanks but i don't want to import string, something else ? Can't i overload printf ? how ? florian "Carlos Santander B." <carlos8294 msn.com> a ιcrit dans le message news: b9lpra$2chc$1 digitaldaemon.com..."Florian Lavrard" <flavrard free.fr.nospam.> escribiσ en el mensaje news:b9ljqq$26qc$1 digitaldaemon.com... | | couplea.show() use printf("%c",...); to print a char >>> .It's right | couple1.show() use printf("%c",...); to print a int >>>it's not right | If you want to print 1 and 'a', try this: void show(){printf("%.*s",toStr(getFst()));} //1 ... //outside template import string; char[] toStr(int i) { return string.toString(i); } //2 char[] toStr(char c) { //3 char [] res; res ~= c; return res; } This leads to a bug. I couldn't use toString instead of toStr in //2 and//3because dmd complained in //1 that toString() doesn't match (int). I know why's that: because dmd looks for toString inside the class. But wouldn'titbe desirable if dmd could look outside the class too? I mean, if itdoesn'tfind a function inside the class, then try inside the module, then inside the imports, etc. Could it be possible? ------------------------- Carlos Santander --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.478 / Virus Database: 275 - Release Date: 2003-05-06
May 12 2003
"Florian Lavrard" <flavrard free.fr.nospam.> escribiσ en el mensaje news:b9q59r$p7o$1 digitaldaemon.com... | thanks but i don't want to import string, | something else ? | | Can't i overload printf ? how ? | | florian | Sure, write your own :D Carlos Santander --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.480 / Virus Database: 276 - Release Date: 2003-05-12
May 13 2003