Wiederliche Fehler mit iomanip
-
Moin,
ich bekomme bei folgenedem Code, Fehler (mit Vc++ auf WindoofXP), die angeblich in iomanip aus der Standardbibliothek stecken, wie z.B. fehlende Strichpunkte etc.#include "blackbox.h" #include <ctime> #include <iomanip> using namespace std; const std::string Blackbox::m_filename("logger.txt"); void Blackbox::writeCurrentTime(std::fstream& thefile) { time_t long_time; time(&long_time); tm* newtime; newtime = localtime(&long_time); if (thefile.is_open()) { thefile << setfill('0') << setw(2) << newtime->tm_mday << "." << setfill('0') << setw(2) << newtime->tm_mon + 1 << "." << setfill('0') << setw(4) << newtime->tm_year + 1900 << " - " << setfill('0') << setw(2) << newtime->tm_hour << ":" << setfill('0') << setw(2) << newtime->tm_min << ":" << setfill('0') << setw(2) << newtime->tm_sec << " "; } }
Es treten folgende Fehler (in iomanip) auf:
error C2143: Syntaxfehler : Fehlendes ';' vor '<'
error C2433: 'basic_istream' : 'inline' bei der Deklaration von Daten nicht zulaessig
error C2501: 'basic_istream' : Fehlende Speicherklasse oder Typbezeichner
error C2059: Syntaxfehler : ';'
error C2059: Syntaxfehler : '<'
error C2065: '_E' : nichtdeklarierter Bezeichner
error C2143: Syntaxfehler : Fehlendes ';' vor '{'
error C2447: Funktionskopf fehlt - Parameterliste im alten Stil?
error C2954: Vorlagendefinitionen koennen nicht verschachtelt werden
error C2629: 'struct logging::std::_Smanip<_Tm> (' unerwartet
Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'logging::std::_Smanip<_Tm>'
error C2334: Unerwartete(s) Token vor ':'; sichtbarer Funktionsrumpf wird übersprungen
Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'logging::std::_Smanip<_Tm>'
error C2629: 'void (' unerwartet
Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'logging::std::_Smanip<_Tm>'
error C2238: Unerwartete(s) Token vor ';'
Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'logging::std::_Smanip<_Tm>'
Syntaxfehler : Fehlendes ';' vor '<'
error C2433: 'basic_istream' : 'inline' bei der Deklaration von Daten nicht zulaessig
error C2501: 'basic_istream' : Fehlende Speicherklasse oder Typbezeichner
error C2086: 'basic_istream' : Neudefinition
error C2059: Syntaxfehler : ';'
error C2059: Syntaxfehler : '<'
error C2065: '_Tm' : nichtdeklarierter Bezeichner
error C2143: Syntaxfehler : Fehlendes ';' vor '{'
error C2447: Funktionskopf fehlt - Parameterliste im alten Stil?
cerror C2653: 'ios_base' : Keine Klasse oder Namespace
error C2065: 'fmtflags' : nichtdeklarierter Bezeichner
error C2653: 'ios_base' : Keine Klasse oder Namespace
warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
error C2514: 'logging::std::_Smanip' : Klasse besitzt keine Konstruktoren
Siehe Deklaration von '_Smanip'
error C2262: 'resetiosflags' : Zerstoerung nicht moeglich
error C2653: 'ios_base' : Keine Klasse oder Namespace
error C2653: 'ios_base' : Keine Klasse oder Namespace
warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
error C2514: 'logging::std::_Smanip' : Klasse besitzt keine Konstruktoren
Siehe Deklaration von '_Smanip'
error C2262: 'setiosflags' : Zerstoerung nicht moeglich
error C2065: 'streamsize' : nichtdeklarierter Bezeichner
warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
error C2514: 'logging::std::_Smanip' : Klasse besitzt keine Konstruktoren
Siehe Deklaration von '_Smanip'
error C2262: 'setprecision' : Zerstoerung nicht moeglich
warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
error C2514: 'logging::std::_Smanip' : Klasse besitzt keine Konstruktoren
Siehe Deklaration von '_Smanip'
error C2262: 'setw' : Zerstoerung nicht moeglichKann mir da jemand helfen
thx
Glamdring
-
Hat nix mit iomanip zu schaffen. Unten stehendes Programm schreibt Datum/Zeit in die Datei:
//#include "blackbox.h" #include <ctime> #include <iomanip> #include <fstream> using namespace std; namespace Blackbox { const string m_filename( "logger.txt" ); void writeCurrentTime( ofstream & thefile ) { time_t long_time; time(&long_time); tm* newtime; newtime = localtime(&long_time); if( thefile ) { thefile << setfill('0') << setw(2) << newtime->tm_mday << "." << setfill('0') << setw(2) << newtime->tm_mon + 1 << "." << setfill('0') << setw(4) << newtime->tm_year + 1900 << " - " << setfill('0') << setw(2) << newtime->tm_hour << ":" << setfill('0') << setw(2) << newtime->tm_min << ":" << setfill('0') << setw(2) << newtime->tm_sec << " "; } } } int main() { using namespace Blackbox; ofstream file( m_filename.c_str() ); writeCurrentTime( file ); }
-
Jetzt fällts mir auch auf
, nur wie kann man das ändern? Neues iomanip?
mfg
Glamdring
-
Das von E.H. gepostete Prog, läuft das bei Dir? Dann gehe davon aus.
-
Nee, läuft nicht Fehler:
error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Dateithx
Glamdring
-
Glamdrink schrieb:
Nee, läuft nicht Fehler:
error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-DateiWas natürlich nichts mit dem Code an sich zu tun hat. Wie wäre es, wenn du vorkompilierte Header entweder richtig (Stichwort: stdafx.h) oder gar nicht verwenden würdest?
-
War nur ein versehen, weil ich bei Konsolenanwendung (mit VC++) auf Hello-World anwendung geklickt habe, ivch weiss nicht mal wozu man sowas braucht
mfg
Glamdring
-
Jetzt läufts auch, -> neues iomanip, wenn ich das richtig verstanden hab
thx
Glamdring