Forum: PC-Programmierung printf letztes Zeichen löschen


von printf (Gast)


Lesenswert?

Hallo,

ich habe eine For-Schleife welche mir Daten berechnet die anschließend 
mal in den Flasch von einem µC sollen. Deswegen gebe ich die berechneten 
Daten einfach mit printf im richtigen Format aus.

z.B. so
1
#include <stdio.h>
2
int
3
main (void)
4
{
5
 int Berechnung = 0;
6
printf("char array[] = {");
7
        for(int i = 0; i < 10; i++)
8
  {
9
                Berechnung = Berechnung +10;
10
    printf("0x%x, ",Berechnung);
11
  }
12
        printf("\b};");
13
     return (0);
14
}

Wie bekomme ich das letzte Komma weg? Habe es mit \b probiert, 
funktioniert nicht.
http://codepad.org/jcQR2IlZ

Dank und Gruß

von Jedem Tierchen sein Plaisirchen (Gast)


Lesenswert?


von printf (Gast)


Lesenswert?

Das ist ja geschummelt :-D

Dank dir

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

printf schrieb:
> Wie bekomme ich das letzte Komma weg?

Indem Du mit zwei unterschiedlichen Formatstrings arbeitest, einem, der 
kein Komma enthält, und einen, der mit einem Komma beginnt.

Den ersten verwendest Du nur bei i == 0, sonst immer nur den anderen.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

1
#include <stdio.h>
2
int
3
main (void)
4
{
5
  int Berechnung = 0;
6
7
  printf("char array[] = {");
8
  for(int i = 0; i < 10; i++) {
9
     Berechnung = Berechnung +10;
10
     printf("%s0x%x%c ", i ? ", ":"", Berechnung);
11
  }
12
  return 0;
13
}

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Joachim Drechsel schrieb:
> printf("%s0x%x%c "

Das will drei Argumente, Du gibst ihm aber nur zwei:

  i ? ", ":""
und
  Berechnung

Das %c gehört da weg.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

... ups. Das %c muß natürlich raus ;)

von Rolf Magnus (Gast)


Lesenswert?

printf schrieb:
> Das ist ja geschummelt :-D

Also ich empfinde da eher das \b als geschummelt. Und das wird nicht 
funktionieren, weil es einfach ein Backspace-Zeichen in die Datei 
schreibt.  Es ist ja kein Terminal da, das das als Sonderzeichen 
interpretieren würde.
Aber mußt du denn das Komma überhaupt wegmachen? Es ist in C eigentlich 
auch am Schluß erlaubt, gerade um die Sache für Codegeneratoren zu 
vereinfachen.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Rolf Magnus schrieb:
> Aber mußt du denn das Komma überhaupt wegmachen? Es ist in C eigentlich
> auch am Schluß erlaubt, gerade um die Sache für Codegeneratoren zu
> vereinfachen.

Es schaut halt bleeed aus ...

Es könnte ja auch eine Ausgabe einer Tabelle sein (nur in diesem
Fall halt mal C-Quellcode).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.