Ofstream / ifstream
-
HI,
ich habe folhendes Programm Geschrieben:
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string ip; //Hier wird die IP gespeichert string host[30]; //Hier wird der Inhalt der /etc/hosts Date gespeichert string gesamt; string iploc="/root/ip/ip.txt"; //Pfad zur Datei mit der IP string hostloc="/etc/hosts"; //Pfad zu Hosts Datei //----------------------------------------------- ifstream ausgabe(iploc.c_str(),ios::in); //Öffnet die ip.txt getline(ausgabe,ip); //Liest die erste Zeile aus ip.txt ein ip.erase( 0, 24 ); //Löscht die Zeichen vor der IP int loc = ip.find(")",0); //und ip.erase(loc,100); //nach der IP ausgabe.close(); //Schliesst die Datei wieder //----------------------------------------------- ifstream aus_host(hostloc.c_str(),ios::in); for(int i=0;i!=30;i++) { getline(aus_host,host[i]); } aus_host.close(); //----------------------------------------------- int loc_host = host[9].find("loc",0); host[9].erase( 0, loc_host-1 ); gesamt=ip + " localhost server"; host[9].replace( 0, 30,gesamt); //----------------------------------------------- ofstream ein_host(hostloc); ein_host.seekp(ios::beg); for(int i=0;i!=30;i++) { ein_host<<host[i]<<endl; } ein_host.close(); }
Nur wenn ich es dann mit gcc auf meinem Linuxrechner kompiliere spuckt der folgende meldung aus:
ip.cpp: In function
int main()': ip.cpp:45: error: no matching function for call to
std::basic_ofstream<char,
std::char_traits<char> >::basic_ofstream(std::string&)'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/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/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/fstream:644: error:
std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const
char*, std::_Ios_Openmode) [with _CharT = char, _Traits =
std::char_traits<char>]
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3/fstream:627: error:
std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with
_CharT = char, _Traits = std::char_traits<char>]ich habe schon rumprobiert aber es wird höchstens schlimmer.
Kann vielleicht mal einer von euch kucken oder er den Fehler findet?MFG Kollode
-
Hi,
ändere Zeile 45 mal wie folgt:
ofstream ein_host(hostloc.c_str());
-
Hatte ich auch schon macht es in meinen Augen nur noch schlimmer.
Das kommt dabei raus.
/tmp/cc0LfIf8.o(.text+0x1b): In function
main': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string[in-charge]()'
/tmp/cc0LfIf8.o(.text+0x54): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string[in-charge]()'
/tmp/cc0LfIf8.o(.text+0x7c): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string[in-charge]()'
/tmp/cc0LfIf8.o(.text+0x8a): In functionmain': : undefined reference to
std::allocator<char>::allocator[in-charge]()'
/tmp/cc0LfIf8.o(.text+0xaa): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string[in-charge](char const*, std::allocator<char> const&)'
/tmp/cc0LfIf8.o(.text+0xc6): In functionmain': : undefined reference to
std::allocator<char>::~allocator [in-charge]()'
/tmp/cc0LfIf8.o(.text+0xdf): In functionmain': : undefined reference to
std::allocator<char>::~allocator [in-charge]()'
/tmp/cc0LfIf8.o(.text+0xed): In functionmain': : undefined reference to
std::allocator<char>::allocator[in-charge]()'
/tmp/cc0LfIf8.o(.text+0x10d): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string[in-charge](char const*, std::allocator<char> const&)'
/tmp/cc0LfIf8.o(.text+0x129): In functionmain': : undefined reference to
std::allocator<char>::~allocator [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x142): In functionmain': : undefined reference to
std::allocator<char>::~allocator [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x150): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
/tmp/cc0LfIf8.o(.text+0x16a): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream[in-charge](char const*, std::_Ios_Openmode)'
/tmp/cc0LfIf8.o(.text+0x17f): In functionmain': : undefined reference to
std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/tmp/cc0LfIf8.o(.text+0x19a): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned, unsigned)'
/tmp/cc0LfIf8.o(.text+0x1b5): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned) const'
/tmp/cc0LfIf8.o(.text+0x1d8): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned, unsigned)'
/tmp/cc0LfIf8.o(.text+0x1e6): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::close()'
/tmp/cc0LfIf8.o(.text+0x1f4): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
/tmp/cc0LfIf8.o(.text+0x20e): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream[in-charge](char const*, std::_Ios_Openmode)'
/tmp/cc0LfIf8.o(.text+0x247): In functionmain': : undefined reference to
std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/tmp/cc0LfIf8.o(.text+0x25f): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::close()'
/tmp/cc0LfIf8.o(.text+0x280): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned) const'
/tmp/cc0LfIf8.o(.text+0x2aa): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::erase(unsigned, unsigned)'
/tmp/cc0LfIf8.o(.text+0x2e2): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0LfIf8.o(.text+0x2fe): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x317): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x342): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned, unsigned, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0LfIf8.o(.text+0x36a): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
/tmp/cc0LfIf8.o(.text+0x386): In functionmain': : undefined reference to
std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream[in-charge](char const*, std::_Ios_Openmode)'
/tmp/cc0LfIf8.o(.text+0x3da): In functionmain': : undefined reference to
std::basic_ostream<char, std::char_traits<char> >::seekp(std::fpos<__mbstate_t>)'
/tmp/cc0LfIf8.o(.text+0x413): In functionmain': : undefined reference to
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0LfIf8.o(.text+0x41b): In functionmain': : undefined reference to
std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
/tmp/cc0LfIf8.o(.text+0x423): In functionmain': : undefined reference to
std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& ()(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/cc0LfIf8.o(.text+0x43b): In functionmain': : undefined reference to
std::basic_ofstream<char, std::char_traits<char> >::close()'
/tmp/cc0LfIf8.o(.text+0x457): In functionmain': : undefined reference to
std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x46d): In functionmain': : undefined reference to
std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x489): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x49f): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x4bb): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x4d1): In functionmain': : undefined reference to
std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x4ed): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x503): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x519): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x52f): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x545): In functionmain': : undefined reference to
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string [in-charge]()'
/tmp/cc0LfIf8.o(.text+0x55b): more undefined references tostd::basic\_string<char, std::char\_traits<char>, std::allocator<char> >::~basic_string [in-charge]()' follow /tmp/cc0LfIf8.o(.text+0x65b): In function
__static_initialization_and_destruction_0(int, int)':
: undefined reference tostd::ios_base::Init::Init[in-charge]()' /tmp/cc0LfIf8.o(.text+0x68c): In function
__tcf_0':
: undefined reference tostd::ios_base::Init::~Init [in-charge]()' /tmp/cc0LfIf8.o(.gnu.linkonce.t.\_ZStplIcSt11char\_traitsIcESaIcEESbIT\_T0\_T1\_ERKS6\_PKS3_+0x15): In function
std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const)':
: undefined reference tostd::basic\_string<char, std::char\_traits<char>, std::allocator<char> >::basic\_string[in-charge](std::basic\_string<char, std::char_traits<char>, std::allocator<char> > const&)' /tmp/cc0LfIf8.o(.gnu.linkonce.t.\_ZStplIcSt11char\_traitsIcESaIcEESbIT\_T0\_T1\_ERKS6\_PKS3_+0x27): In function
std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)':
: undefined reference tostd::basic\_string<char, std::char\_traits<char>, std::allocator<char> >::append(char const*)' /tmp/cc0LfIf8.o(.gnu.linkonce.t.\_ZStplIcSt11char\_traitsIcESaIcEESbIT\_T0\_T1\_ERKS6\_PKS3_+0x3a): In function
std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)':
: undefined reference tostd::basic\_string<char, std::char\_traits<char>, std::allocator<char> >::~basic_string [in-charge]()' /tmp/cc0LfIf8.o(.eh\_frame+0x12): undefined reference to
__gxx_personality_v0'
collect2: ld returned 1 exit status
-
Also bei mir wird dein geposteter Quelltext (mit der besagten Änderzung von CarstenJ) fehlerfrei compiliert. (Compiliert mit g++.exe und Borland C++ 5.0.x)
Welchen Compiler verwendest du denn?Caipi
-
Vergisst am besten das ich hier war...
Als ich Caipi´s antwort gelesen habe wurde mir klar wodran es lag ...
Ich habe auf dem Linux system immer gcc statt g++ ausgeführt ....schande über mich ..
MFG Kollode