www.mikrocontroller.net

Forum: PC-Programmierung C: In einem String eine (int)Variable hochzählen lassen


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Quelltext ist nicht C, sondern C++. Solche Dinge wie "ios::in" gibt 
es in C nicht.

Da Du C++ verwendest, kannst Du auch die deutlich komfortableren 
C++-String-Funktionen aus std::string verwenden, anstelle mit printf und 
Konsorten zu arbeiten.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Tipps, nach ein wenig googeln nach den von euch genannten 
"richtigen" Stichwörtern, läuft es nun perfekt.

Danke,

Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.