Existenz von Datei prüfen

DeChecka

Erfahrenes Mitglied
Hi!
Ich hab folgende Funktion zur Überprüfung einer Datei auf Existenz hin geschrieben.
Falls die Datei vorhanden ist, soll true, falls nicht false ausgegeben werden.

Code:
bool Dateipruefen(string dateiname)
{
 ifstream datei(dateiname);
 if(datei)
  return true;
 else
  return false;
}

Leider bringt der Compiler (Dev-C++) folgende Fehlermeldung:
"no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'"
Der Fehler soll in der Zeile mit "ifstream datei(dateiname)" liegen...

Weiß einer, an was das liegt?

MfG
DeChecka
 
moin


Ich gehe jetzt mal davon aus das du die "fstream" eingebunden hast.
Dann versuch mal
Code:
std::ifstream datei(dateiname);


mfg
umbrasaxum
 
Vom Typ "string"... Also der eine bestimmte Typ aus der Library.

Vielleicht geht's einfach deswegen nicht...

Übrigens hab ich gerade herausgefunden das es so geht:
Code:
bool Dateipruefen(char dateiname[])
{
 ifstream datei(dateiname);
 if(datei)
  return true;
 else
  return false;
}

Ich weiß zwar nicht genau, was die leeren Klammern "[]" hinter dem "char dateiname" bedeuten, aber es funktioniert;)!
Hab das mal irgendwo gesehen und probiert:)...
Vielleicht weißt du ja aber trotzdem, wieso es anders nicht geht...

MfG
DeChecka
 
Ok, danke, funktioniert;)!

Jetzt hab ich mal 'ne ganz simple Frage zu Dev-C++...
Ich will mich jetzt daran machen, Funktionen komplett auszulagern der Übersichtlichkeit halber.
Sprich, ich hab ein Projekt, da eine Haupt.cpp und jetzt will ich eine bestimmte Funktion, zum Beispiel Funktion.cpp für dieses Projekt machen, die ich dann aber in der Haupt.cpp benutzen kann...
Was muss ich dazu machen?
Das geht ja, oder? Also kurz gesagt will ich einfach zwei C++-Source-Code-Dateien, wo ich aber "zusammen" nutzen kann...

MfG
DeChecka
 
moin


Suchfunktion!

Oder so:
Code:
//haupt.cpp

#include <iostream>
include "xxx.h"

int main()
{
    hallo();

    return 0;
}

Code:
//xxx.h

void hallo();

Code:
//xxx.cpp

include "xxx.h"

void hallo()
{
    std::cout<<"Hallo";
}
Sollte so gehen. Die drei Dateien müssen einfach nur all in einem Ordner sein. Das funktioniert aber bei eigentlich allen Compilern gleich.


mfg
umbrasaxum
 
Zurück