PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Dateiname eingeben ??? Ofstream



Andrea_de
06-06-2005, 20:19
Hallo,

ich hab ein C++ Programm, das etwas in einer Datei speichern soll. Im Moment oeffne ich den ofstream mit

ofstream nach("test.txt");

Dummerweise haette ich aber gerne auch mal andere Dateinamen, die ich auf der Konsole eingeben lassen moechte und zwar so:

string name;
cin >> name;
ofstream nach("name);

Das liefert mir aber diese Fehlermeldungen:

schreiben.cpp: In function `int schreiben()':
schreiben.cpp:99: error: no matching function for call to `
std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(
std::string&)'
/usr/include/c++/3.3.4/iosfwd:92: error: candidates are:
std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(const
std::basic_ofstream<char, std::char_traits<char> >&)
/usr/include/c++/3.3.4/fstream:644: error:
std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*,
std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/3.3.4/fstream:627: error:
std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char,
_Traits = std::char_traits<char>]
schreiben.cpp:133:2: warning: no newline at end of file

Damit kann ich nicht viel anfangen =), ich habe auch nicht so viel Ahnung von C++...

Vielleicht kann irgendwer helfen?

Danke schon mal , Andrea

locus vivendi
06-06-2005, 20:54
Ausnahmsweise ist es genau so, wie die Fehlermeldung sagt. Der Konstruktof des ofstream erwartet keinen std::string. Du musst Zeiger auf char übergeben, also z.B. wenn name ein std::string ist name.c_str().

Andrea_de
07-06-2005, 18:15
Danke, es geht jetzt ...

Ich habe leider nicht verstanden was mir die Fehlermeldung sagen wollte =)

Andrea