Mit putc Zahlen ausgeben

mc_gulasch

Erfahrenes Mitglied
Guten Morgen zusammen,

folgendes kleines aber nerviges Problemchen hält mich gerade auf Trab:

Ich habe einen Array, der eigentlich die Form
[Zahl] [Zahl] [Buchstabe] [Buchstabe] [Buchstabe] .. hat, wobei die Buchstaben als "int" gespeichert sind.
D.h. wenn ich die Buchstaben über putc ausgeben, krieg ich auch wieder das, was ich eigentlich haben will, aber wie schaffe ich es, die Zahlen über putc auszugeben, ohne dass sie in char umgewandelt werden?
Klingt einfach, ist es wahrscheinlich auch, aber ich komm nicht drauf!

Danke schon mal.


//edit:

Ok, also für Zahlen, die < 10 sind, hab ich es raus:

putc('0'+zahl,file)

aber ich weiß nicht wie das für Zahlen >= 10 gehen soll, da es ja schließlich
zwei Character sind.

//edit2:

Ich hab folgende Lösung im Netz gefunden und die klappt auch sehr fein:
Code:
void printdec (int n,FILE *file)
{
	if (n < 0) 
	{
		putc ('-',file);
		n = -n;
	}
	if (n / 10)
		printdec (n / 10,file);
	putc (n%10 + '0',file);
}
Alternativ kann man jederzeit "putc" durch "putchar" ersetzen und die file weglassen, dann klappt das auch auf dem Bildschirm. Das ganze hab ich hier gefunden.
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
Hi.

Mit putc kannst du nur einzelne Zeichen ausgeben. Wenn du den Integer Wert ausgeben willst, nimm einfach fprintf:
C:
fprintf(file, "%d", zahl);
Gruß