Werte an Funktion übergeben

Gast #47117
Lesenswert?
• ▲
▼
Hallo,

ich habe da eine Funktion in der sich u.a. ein printf befindet, z.B.:

{
  .
  .
  printf("%c%c%c%c%10.4f%c"..usw....);
}

Je nach Aufrufer der Funktion müssen die Konvertierungszeichen geändert
werden.
Also, mal muß "%c%c%c%c%10.0f%c"
      mal     "%c%c%c%c%10.1f%c"
      mal     "%c%c%c%c%10.2f%c" usw.  drinstehen.

Ich habe diese Zeichenreihen als Konstante definiert:
#define ZEHN_NULL "%c%c%c%c%10.0f%c"
#define ZEHN_EINS "%c%c%c%c%10.1f%c"

Aber jetzt weiß ich nicht weiter. Wie kommen diese Konstanten, je nach
Auswahl, in die Funktion?

Tipper
Gast #47118
Lesenswert?
• ▲
▼
Der Kopf der Funktion bekommt einen Übergabeparameter, z.b. char*. Dann
beim Aufruf der Funktion eins Deiner defines übergeben und printf mit
der Übergabevariablen aufrufen:

void printanyshit(char* what)
{
  printf(what);
}

Aufruf:
printanyshit(ZEHN_NULL);


Buchtipp:
C Programmieren von Anfang an, Helmut Erlenkötter
rororo ISBN 3-499-60074-9
Taschenbuch, kann man immer dabeihaben. Hilft bei kurzen
Gedächtnislücken oder ausfällen ;-) bzw. grundsätzlichen Fragen.

mz
Gast #47120
Lesenswert?
• ▲
▼
Hi

Auf sein spezielles Problem zugeschnitten wenn es nur um das
austauschen eines einzigen Zeichens geht:

char *formatstring="%c%c%c%c%10.0f%c;

if(bla) formatstring[12] = '0';
else if(blub) formatstring[12] = '1';
else if...

printf(formatstring, ...);

Matthias

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.