C: In einem String eine (int)Variable hochzählen lassen

Gast #606736
Lesenswert?

Hallo,

habe hier mehrere Dateien mit unfomatiertem Inhalt, den ich fomatieren 
soll. Mit einzelnen Dateien geht das alles einwandfrei, es sind jedoch 
29 Stück. Die Dateinamen lauten: roh1.data bis roh29.data
Unter Basic kann ich Strings einfach "unterbrechen", mit einem + Zeichen 
was anhängen und dann wieder was anhängen. Es soll jedoch unter C 
geschehen.
Wie macht man das am Besten? Strcat von jeweils den Teilstrings?

  for (int i=1; i<30; i++)
  {
    fstream rohdaten, formatiert;
    rohdaten.open("roh" + i +".data", ios::in | ios::binary);
    formatiert.open("formatiert" + i + ".txt", ios::out | ios::binary);
  }

Gruß,

Peter
#606759
Lesenswert?

Peter wrote:
> Hallo,
>
> habe hier mehrere Dateien mit unfomatiertem Inhalt, den ich fomatieren
> soll. Mit einzelnen Dateien geht das alles einwandfrei, es sind jedoch
> 29 Stück. Die Dateinamen lauten: roh1.data bis roh29.data
> Unter Basic kann ich Strings einfach "unterbrechen", mit einem + Zeichen
> was anhängen und dann wieder was anhängen. Es soll jedoch unter C
> geschehen.

Warum benutzt du dann C++?

> Wie macht man das am Besten?

Du arbeitest mit C++. Also: Nutze die Macht, Luke, aeh Peter

In C++ gibt es Stringstreams, die sich wie der ganz normalen
Ausgabestream cout verhält, nur dass das Ergebnis in einem
std::string landet. Dort gibst du dann den festen Anteil
deines Filenamens aus, gefolgt von der Schleifenvariable
und der Extension.
Dann holst du dir aus dem String den fertig formatierten Dateinamen
raus.

> Strcat von jeweils den Teilstrings?

Könnte man in C so machen, ist aber umständlich.
Der sprintf ist schon erfunden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren