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

Gast #606736
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
#606757
> Wie macht man das am Besten? Strcat von jeweils den Teilstrings?

Das ist eine Möglichkeit - die primitivste.

Du kannst auch funktionen aus der printf - Familie nehmen. Das ist schon 
deutlich komfortabler.
#606759
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

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.