[c++] wie mit ofstream out einen int wert als dateinamen einfügen?

c-mute hat gesagt.:
so:

C++:
int nr;
istringstream filename("d:\\Ordner-1\\Ordner-2\\Ordner-3\\11.txt");
if (filename >> nr) {
cout << "Dateinummer: " << nr << endl;
}
else {
cerr << "keine Dateinummer vorhanden." << endl;
}

hat es aber auch nicht funktioniert, obwohl sich die Datei 11.txt im angegebenen Ordner befindet.
So kann es nicht funktionieren. Es ist auch völlig egal ob die Datei dort existiert oder nicht. Diese Methode funktioniert nur mit Dateinamen, die mit einer Zahl anfangen. Wenn der Dateiname bzw. in dem Fall der Pfad den du eingegeben hast nicht mit einer Ziffer beginnt funktioniert es nicht.

Ich glaube langsam du hast die Dateien noch gar nicht aus dem Ordner gelesen. Du mußt doch erstmal feststellen welche Dateien es überhaupt in den entsprechenden Ordnern gibt bevor du die Namen der Dateien auseinander nehmen kannst.... Das müßtest du unter Windows mit FindFirstFile und FindNextFile machen.

Gruß

PS: Bitte verwende die Code-Tags wenn du Quelltext in deinem Beitrag angibst.
 
FindFirstFile und FindNextFile sind glaube ich aus API, oder?

Macht aber nichts, denn ich habe die Lösung gefunden. Hier nochmal für alle die es interessiert:

Code:
string einlesen;
int dateinummer;
dateinummer=11;
std::stringstream filename;
filename <<"d:\\Ordner-1\\Ordener-2\\Ordner-3\\" << dateinummer << ".txt";

ifstream meinedatei;
meinedatei.open(filename.str().c_str(), ios::in);
while(meinedatei >> einlesen)
{
cout<<"eingelesene Datei Nr.  "<< dateinummer <<" mit dem Inhalt:  " << einlesen << endl;

Funktioniert prima. Vielen Dank deepthroat !
Gruß
 
FindFirstFile und FindNextFile sind glaube ich aus API, oder?
Ja, aus der WinAPI. Dateisystemfunktionen sind betriebssystemspezifisch und gehören deshalb nicht zu C++.
Macht aber nichts, denn ich habe die Lösung gefunden. Hier nochmal für alle die es interessiert:

Code:
string einlesen;
int dateinummer;
dateinummer=11;
std::stringstream filename;
filename <<"d:\\Ordner-1\\Ordener-2\\Ordner-3\\" << dateinummer << ".txt";

ifstream meinedatei;
meinedatei.open(filename.str().c_str(), ios::in);
while(meinedatei >> einlesen)
{
cout<<"eingelesene Datei Nr.  "<< dateinummer <<" mit dem Inhalt:  " << einlesen << endl;
Das ist doch aber nun was ganz anderes als du gefragt hattest. Oder ich hab dich irgendwie nicht richtig verstanden. Aber wolltest du nicht eigentlich die Dateinummer aus dem Dateinamen ermitteln?

Gruß
 
Du weißt aber scon das Objekte Konstruktoren haben?! (c-mule)
Ehm und Dateisystemoperationen sind mein ich doch in TR2 enthalten, oder? Andernfalls einfach hier auf boost.org zurück greifen ...
 
Zurück