Ausgabe von Daten in unterschiedliche Ordner mit forlaufender Nummerierung
-
ohne code ist die ferndiagnose schwierig. allerdings nicht unbedingt in diesem fall.
++ bezieht sich in der regel auf zahlen - int z.B.
was soll ++ mit einem text machen?int i = 42; i++; //ok, alles klar string text = "hallo!"; text++; //ähm was ist das ergebnis?text kann natürlich aus zeichen wie buchstaben, punktation aber auch ziffern bestehen.
string text = "abc123"; text++; //fehler - "abc123" ist ein text, keine zahl! string text = "42"; text++; //fehler - "42" ist ein text, keine zahl!kurz: du brauchst eine zahl für ++. diese zahl musst du dann in einen string konvertieren.
-
hallo dove,
ich habe es folgendermaßen versucht:
char ausgabe="C:/Produkt1.txt";
...
...//vorbereitung der Daten
...
dateiausgabe.open(ausgabe,ios::in|ios:app)
...
...//Schreiben des ersten Datenblocks in die Datei
...
dateiausgabe.close()ausgabe[9]++; //Hier möchte ich die Zahl 1 auf 2 erhöhen
dateiausgabe.open(ausgabe,ios::in|ios:app)
...
...//Schreiben des zweiten Datenblocks als neue Datei
...
dateiausgabe.close()
-
Also als Code:
char ausgabe[]="C:/Produkt1.txt"; cout << ausgabe << "\n"; ausgabe[9]++; cout << ausgabe << "\n";Es kommt raus, dass du nur bis 9, aber nicht bis 10 Zählen kannst

C:/Produkt1.txt C:/Produku1.txtAber Achtung: wenn du das so machst, kommst du höchstens bis Produkt9.txt.
Also: Lieber sowas wie
string filename = "C:/Produkt" + to_string(i) + ".txt";nehmen, wobei i die int-Variable ist, die hochgezählt wird.
-
string filename = "C:/Produkt" + to_string(i) + ".txt";
benutze ich diese Syntax so erhalte ich folgenden Fehler:
C2668: std::to_string: Mehrdeutiger Aufruf einer überladenen Funktion.
-
zeig mehr code, die zeile ansonsten ist nämlich richtig.
-
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include "funktionen.h";using namespace std;
int main()
{/**************************************************************/
string auspfad="C:/Produkt"+to_string(zaehler)+".txt";
cout<<auspfad;
zaehler++;
cout<<auspfad;fstream dateiausgabe(auspfad,ios::in|ios::out|ios::app);
//test
dateiausgabe.open(auspfad,ios::out|ios::in|ios::app);
dateiausgabe<<"es funktioniert";
getchar();
getchar();/*************************************************************/
}
bei Visual Basic wird mir nun to_string(zaehler) unterstrichen und das Programm sagt mir es gäbe einen Mehrdeutigen aufruf.
-
lambik schrieb:
bei Visual Basic wird mir nun to_string(zaehler) unterstrichen und das Programm sagt mir es gäbe einen Mehrdeutigen aufruf.
Visual Basic?
du musst natürlich eine variable zähler definieren, bevor du sie verwendest... und du musst, wenn du inkrementierst, den string neu erstellen...
#include <iostream> #include <string> using namespace std; int main() { int zaehler = 0; //nicht vergessen string auspfad="C:/Produkt"+to_string(zaehler)+".txt"; cout<<auspfad; zaehler++; auspfad="C:/Produkt"+to_string(zaehler)+".txt"; //neuen string erstellen cout<<auspfad; }
-
Ich habe hier mal einen Screenshot erstellt vom besagten Programmausschnitt:
https://pl.vc/st6io
-
Dein Uraltcompiler kann das noch nicht. Benutze Visual Studio 2015.
-

Vielen Dank für die Hilfe an alle