Bitte angucken und helfen



  • Woa Danke das hat mir sehr geholfen 😉 👍



  • So jetzt hab ich nur noch 1 Problem in der Datei Standard-Header <utility> kommt ein Fehler:

    c:\programme\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std::pair<char [8],int>::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
    c:\programme\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
    c:\programme\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std::pair<char [8],int>::std::pair<char [8],int>(const char (&)[8],const int &)' der Klassenvorlage

    is der normal ?? oder is die Datei irgendwie Beschädigt?



  • Wenn du nur die Hälfte des Fehlers angibst, wird es schwer, etwas zu erkennen. (die beiden Zeilen geben nur an, wo der Fehler aufgetreten ist.)

    Nachtrag: Das Problem dürfte sein, daß du ein char-Array nicht als Template-Parameter verwenden kannst, weil es die für den Ctor benötigten Methoden nicht bereitstellt (C-style Arrays haben z.B. keinen Copy-Ctor) - wie gesagt: char* sind schwieriger zu handhaben als std::string.



  • Du willst den Fehler??... Du bekommst ihn :

    --------------------Konfiguration: Widerstandsfarbcodierung - Win32 Debug--------------------
    Kompilierung läuft...
    Widerstandsfarbcodierung.cpp
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(25) : warning C4101: 'Ergebnis' : Unreferenzierte lokale Variable
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(24) : warning C4101: 'Erg' : Unreferenzierte lokale Variable
    c:\programme\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\map(46) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,st
    d::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::cha
    r_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    c:\programme\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::const_iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\map(46) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,st
    d::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::cha
    r_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    c:\programme\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\map(46) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,st
    d::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::cha
    r_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    c:\programme\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::_Node' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\map(46) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,st
    d::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::cha
    r_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    c:\programme\microsoft visual studio\vc98\include\xtree(120) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::const_iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\map(46) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,st
    d::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::cha
    r_traits<char>,std::allocator<char> > >,std::allocator<int> >'
    c:\programme\microsoft visual studio\vc98\include\iterator(143) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,i
    nt>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char

    ,std::allocator<char> > >,std::allocator<int> >::iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(202) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'std::insert_iterator<std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic
    _string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> > >'
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(203) : warning C4786: 'std::reverse_bidirectional_iterator<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allo
    cator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char
    ,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
    > const ,int> &,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int> *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(203) : warning C4786: 'std::reverse_bidirectional_iterator<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allo
    cator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char
    ,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::const_iterator,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<
    char> > const ,int> const &,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int> const *,int>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(203) : warning C4786: 'std::pair<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,
    std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,st
    d::allocator<char> > >,std::allocator<int> >::iterator,bool>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(203) : warning C4786: 'std::pair<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,
    std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,st
    d::allocator<char> > >,std::allocator<int> >::iterator,std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_str
    ing<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,
    std::allocator<int> >::iterator>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    F:\Schulprojekt\Widerstandsfarbcodierung.cpp(203) : warning C4786: 'std::pair<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,
    std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,st
    d::allocator<char> > >,std::allocator<int> >::const_iterator,std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std::map<std::bas
    ic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char
    > >,std::allocator<int> >::const_iterator>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::_Redbl' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : Bei der Kompilierung der Member-Funktion 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_st
    ring<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator __thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocat
    or<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::begin(void)' der Klassenvorlage
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : warning C4786: '_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std:
    :map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::les' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : Bei der Kompilierung der Member-Funktion 'class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::bas
    ic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct st
    d::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::iterator __thiscall std::_T
    ree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<
    char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string
    <char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::begin(void)' der Klassenvorlage
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : warning C4786: '~_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,std
    ::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::le' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : Bei der Kompilierung der Member-Funktion 'class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::bas
    ic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct st
    d::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::iterator __thiscall std::_T
    ree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<
    char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string
    <char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::begin(void)' der Klassenvorlage
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(190) : Bei der Kompilierung der Member-Funktion 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_st
    ring<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator __thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocat
    or<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,st
    d::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::begin(void)' der Klassenvorlage
    c:\programme\microsoft visual studio\vc98\include\xtree(124) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::_Node' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
    c:\programme\microsoft visual studio\vc98\include\xtree(124) : Bei der Kompilierung der Member-Funktion '__thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_tr
    aits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<st
    d::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator::std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::alloca
    tor<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,s
    td::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator(std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,s
    td::allocator<char> > >,std::allocator<int> >::_Node *)' der Klassenvorlage
    c:\programme\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std::pair<char [8],int>::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
    c:\programme\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
    c:\programme\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std::pair<char [8],int>::std::pair<char [8],int>(const char (&)[8],const int &)' der Klassenvorlage
    Fehler beim Ausführen von cl.exe.

    Widerstandsfarbcodierung.obj - 1 Fehler, 18 Warnung(en)

    😉



  • Erstmal solltest du mit einem #pragma warning(disable:4786) die ganzen "Bezeichner wurde auf 255 Zeichen..." Meldungen ausschalten - die sind zwar recht informativ, aber für das eigentliche Problem sind sie überflüssig.

    Dann bleibt nur noch die Fehlermeldung am Schluß übrig - und die deutet darauf hin, daß du irgendwo pair<> falsch eingesetzt hast. Zeig doch mal deinen Quellcode (ich bin mir nicht ganz sicher, aber das Problem könnte auch die make_pair() sein).



  • CStoll schrieb:

    Erstmal solltest du mit einem #pragma warning(disable:4786) die ganzen "Bezeichner wurde auf 255 Zeichen..." Meldungen ausschalten - die sind zwar recht informativ, aber für das eigentliche Problem sind sie überflüssig.

    Dann bleibt nur noch die Fehlermeldung am Schluß übrig - und die deutet darauf hin, daß du irgendwo pair<> falsch eingesetzt hast. Zeig doch mal deinen Quellcode (ich bin mir nicht ganz sicher, aber das Problem könnte auch die make_pair() sein).

    #include <iostream>            // cin, cout 
    #include <string>            // string 
    #include <map>                // map 
    #include <algorithm>        // transform 
    
    using namespace std; 
    
    void InitMap( map<string,int>& Data ); 
    
    int main ( void ) 
    { 
    
    char Auswahl = 'x';
    
        //string Ring1;    // Sollte klar sein 
    
        map< string, int > Farbnummern;    // Wir erstellen eben die Map welche die Werte string und int aufnehmen kann 
        InitMap( Farbnummern );    // Wir übergeben die erstellte Map an die Funktion welche sie mit deinen Farben füllt 
    
        cout<<"Moechten sie [W] die Widerstandszahl oder [F] die Farbcodierung eingeben?\n"<<endl;
    	cin>>Auswahl;
    
    		if (Auswahl == 'F')
    
    		{ 
    		cout<<"\nGeben sie die gewuenschte Anzahl der Ringe an (V = 4 oder R = 5)\n"<<endl;
    		cin>>Auswahl;
    		}
    	string Ring1;
    	string Ring2;	
    	string Ring3;
    	string Ring4;
    	string Ring5;
    switch (Auswahl)
    
    {
    
    case 'W':	cout<<"Void";break;
    
    case 'V':
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"Geben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring4;break;
    
    case 'R':
    
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange "<<endl;
    		 cout<<"Gelbt "<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"\nGeben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring4;
    
    		 cout<<"Geben sie bitte die Farbe des fünften Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau "<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring5;break;
    
    default	:cout<<"Falsche eingabe";break;
    }
    
        transform( Ring1.begin(), Ring1.end(), Ring1.begin(), tolower ); // Wir machen aus dem eingegeben Wort kleinbuchstaben dann kann man auch RoT eingeben und er findet rot :-) 
    
        cout << Farbnummern[ Ring1 ] << endl;    // Wert der Ring1 entspricht ausgeben 
    
        return 0; 
    } 
    
    // Ab hier solltest du selbst mal nachlesen (irgendwo) wie das hier funktioneirt ;-) 
    void InitMap( map< string, int >& Data ) 
    { 
      //in das Array schreibst du alle Kombinationen aus Farbname und Kennnummer 
      pair< string, int > Values[] = 
      { 
        make_pair( "schwarz",    0), 
        make_pair( "braun",        1 ), 
        make_pair( "rot",        2 ), 
        make_pair( "orange",    3 ), 
        make_pair( "gelb",        4 ), 
        make_pair( "grün",        5 ), 
        make_pair( "blau",        6 ), 
        make_pair( "violett",    7 ), 
        make_pair( "grau",        8 ), 
        make_pair( "weiss",        9 ), 
      }; 
      int Vsize = sizeof( Values ) / sizeof( Values[0] ); 
      copy( Values, Values + Vsize, inserter( Data, Data.begin() ) ); 
    }
    

    Wo gibt man des #pragma ein?



  • Soulpincher schrieb:

    Wo gibt man des #pragma ein?

    Ganz am Anfang der Datei (noch vor den #include's).

    Das Problem könnte tatsächlich die make_pair-Anwendung sein. Ich bin mir nicht ganz sicher, wieso, aber aus irgendeinem Grund wird sie für char(&)[8] (Referenz auf char-Array) anstatt für char* (Zeiger auf char) instanziiert. Die Lösung wäre es, ohne die Funktion auszukommen und stattdessen den pair-Ctor direkt aufzurufen:

    void init_map(map<string,int>& data)
    {
      typedef pair<string, int> si_pair;
      si_pair vals[]=
      {
        si_pair("schwarz",0),
        ...
      };
      //der Rest wie bisher
    }
    


  • So jetzt sind die Fehler in ...

    int Vsize = sizeof( Values ) / sizeof( Values[0] ); 
      copy( Values, Values + Vsize, inserter( Data, Data.begin() ) );
    

    Fehler:

    f:\freak projekt\yeah^^cpp1.cpp(192) : error C2065: 'Values' : nichtdeklarierter Bezeichner
    f:\freak projekt\yeah^^cpp1.cpp(192) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp
    f:\freak projekt\yeah^^cpp1.cpp(193) : error C2065: 'Data' : nichtdeklarierter Bezeichner
    f:\freak projekt\yeah^^cpp1.cpp(193) : error C2228: Der linke Teil von '.begin' muss eine Klasse/Struktur/Union sein



  • Da ist es eine gute Idee, sich für eine einheitliche Groß/Kleinschreibung zu entscheiden (ich schreib' aus Gewohnheit die Variablennamen klein, sorry, wenn ich dich damit aus dem Konzept gebracht habe).



  • CStoll schrieb:

    Da ist es eine gute Idee, sich für eine einheitliche Groß/Kleinschreibung zu entscheiden (ich schreib' aus Gewohnheit die Variablennamen klein, sorry, wenn ich dich damit aus dem Konzept gebracht habe).

    kannst du mir trotzdem bitte sagen wo hier die fehler genau liegen?



  • Soulpincher schrieb:

    kannst du mir trotzdem bitte sagen wo hier die fehler genau liegen?

    Daran, daß in dem einkopierten Schnipselchen und in der übrigen Funktion andere Variablennamen verwendet wurden - data vs. Data bzw. vals vs. Values.



  • So.......
    neues problem ^^
    jedes mal wenn ich das Programm starte kommen neue Fehler

    #pragma
    
    #include <iostream>            // cin, cout 
    #include <string>            // string 
    #include <map>                // map 
    #include <algorithm>        // transform 
    
    using namespace std; 
    
    void InitMap( map<string,int>& Data ); 
    
    int main ( void ) 
    { 
    
    char Auswahl = 'x';
    
        //string Ring1;    // Sollte klar sein 
    
        map< string, int > Farbnummern;    // Wir erstellen eben die Map welche die Werte string und int aufnehmen kann 
        InitMap( Farbnummern );    // Wir übergeben die erstellte Map an die Funktion welche sie mit deinen Farben füllt 
    
        cout<<"Moechten sie [W] die Widerstandszahl oder [F] die Farbcodierung eingeben?\n"<<endl;
    	cin>>Auswahl;
    
    		if (Auswahl == 'F')
    
    		{ 
    		cout<<"\nGeben sie die gewuenschte Anzahl der Ringe an (V = 4 oder R = 5)\n"<<endl;
    		cin>>Auswahl;
    		}
    	string Ring1;
    	string Ring2;	
    	string Ring3;
    	string Ring4;
    	string Ring5;
    switch (Auswahl)
    
    {
    
    case 'W':	cout<<"Void";break;
    
    case 'V':
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"Geben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring4;break;
    
    case 'R':
    
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange "<<endl;
    		 cout<<"Gelbt "<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"\nGeben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring4;
    
    		 cout<<"Geben sie bitte die Farbe des fünften Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau "<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring5;break;
    
    default	:cout<<"Falsche eingabe";break;
    }
    
        transform( Ring1.begin(), Ring1.end(), Ring1.begin(), tolower ); // Wir machen aus dem eingegeben Wort kleinbuchstaben dann kann man auch RoT eingeben und er findet rot :-) 
    
        cout << Farbnummern[ Ring1 ] << endl;    // Wert der Ring1 entspricht ausgeben 
    
        return 0; 
    } 
    
    // Ab hier solltest du selbst mal nachlesen (irgendwo) wie das hier funktioneirt ;-) 
    void init_map(map<string,int>& data) 
    { 
      //in das Array schreibst du alle Kombinationen aus Farbname und Kennnummer 
      typedef pair<string, int> si_pair; 
       si_pair vals[]=  
      { 
        si_pair( "schwarz",    0), 
        si_pair( "braun",        1 ), 
        si_pair( "rot",        2 ), 
        si_pair( "orange",    3 ), 
        si_pair( "gelb",        4 ), 
        si_pair( "grün",        5 ), 
        si_pair( "blau",        6 ), 
        si_pair( "violett",    7 ), 
        si_pair( "grau",        8 ), 
        si_pair( "weiss",        9 ), 
      }; 
      int Vsize = sizeof( vals ) / sizeof( vals[0] ); 
      copy( vals, vals + Vsize, inserter( data, data.begin() ) ); 
    }
    

    Fehler :
    Yeah^^Cpp1.obj : error LNK2001: Nichtaufgeloestes externes Symbol "void __cdecl InitMap(class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct s
    td::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> > &)" (?InitMap@@YAXAAV?map@V?map@V?basic_string@DU?char_traits@D@std@@V?char\_traits@D@std@@V?allocator@D@2@@std@@HU?less@V?less@V?basic_string@DU?chartraits@D@std@@V?char_traits@D@std@@V?allocator@D@2@@std@@@2@V?$al
    locator@H@2@@std@@@Z)
    Debug/Yeah^^Cpp1.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise

    kannst du ja ma bei dir testen obs nur bei mir so war.



  • Immer noch die Namen - du hast oben eine Funktion "InitMap()" deklariert, die nirgends wieder auftaucht, und definierst unten die Funktion "init_map()", die von niemandem verwendet wird.



  • So es geht aber... irgendwie wird nur 0 ausgegeben

    #pragma 
    
    #include <iostream>            // cin, cout 
    #include <string>            // string 
    #include <map>                // map 
    #include <algorithm>        // transform 
    
    using namespace std; 
    
    void InitMap( map<string,int>& Data ); 
    
    int main ( void ) 
    { 
    
    char Auswahl = 'x'; 
    
        //string Ring1;    // Sollte klar sein 
    
        map< string, int > Farbnummern;    // Wir erstellen eben die Map welche die Werte string und int aufnehmen kann 
        //InitMap( Farbnummern );    // Wir übergeben die erstellte Map an die Funktion welche sie mit deinen Farben füllt 
    
        cout<<"Moechten sie [W] die Widerstandszahl oder [F] die Farbcodierung eingeben?\n"<<endl; 
        cin>>Auswahl; 
    
            if (Auswahl == 'F') 
    
            { 
            cout<<"\nGeben sie die gewuenschte Anzahl der Ringe an (V = 4 oder R = 5)\n"<<endl; 
            cin>>Auswahl; 
            } 
        string Ring1; 
        string Ring2;    
        string Ring3; 
        string Ring4; 
        string Ring5; 
    switch (Auswahl) 
    
    { 
    
    case 'W':    cout<<"Void";break; 
    
    case 'V': 
             cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n"; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss"<<endl; 
             cin>>Ring1; 
    
             cout<<"Geben sie bitte die Farbe des zweiten Ringes an:\n\n"; 
             cout<<"Schwarz"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss"<<endl; 
             cin>>Ring2; 
    
             cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n"; 
             cout<<"Schwarz"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss"<<endl; 
             cout<<"Gold"<<endl; 
             cout<<"Silber"<<endl; 
             cin>>Ring3; 
    
             cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n"; 
             cout<<"Keine"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Gold"<<endl; 
             cout<<"Silber"<<endl; 
             cin>>Ring4;break; 
    
    case 'R': 
    
             cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n"; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange "<<endl; 
             cout<<"Gelbt "<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss\n\n"<<endl; 
             cin>>Ring1; 
    
             cout<<"\nGeben sie bitte die Farbe des zweiten Ringes an:\n\n"; 
             cout<<"Schwarz"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss\n\n"<<endl; 
             cin>>Ring2; 
    
             cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n"; 
             cout<<"Schwarz"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau"<<endl; 
             cout<<"Weiss\n\n"<<endl; 
             cin>>Ring3; 
    
             cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n"; 
             cout<<"Schwarz"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Orange"<<endl; 
             cout<<"Gelb"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Gold"<<endl; 
             cout<<"Silber\n\n"<<endl; 
             cin>>Ring4; 
    
             cout<<"Geben sie bitte die Farbe des fünften Ringes an:\n\n"; 
             cout<<"Keine"<<endl; 
             cout<<"Braun"<<endl; 
             cout<<"Rot"<<endl; 
             cout<<"Gruen"<<endl; 
             cout<<"Blau"<<endl; 
             cout<<"Violett"<<endl; 
             cout<<"Grau "<<endl; 
             cout<<"Gold"<<endl; 
             cout<<"Silber\n\n"<<endl; 
             cin>>Ring5;break; 
    
    default    :cout<<"Falsche eingabe";break; 
    } 
    
        transform( Ring1.begin(), Ring1.end(), Ring1.begin(), tolower ); // Wir machen aus dem eingegeben Wort kleinbuchstaben dann kann man auch RoT eingeben und er findet rot :-) 
    
        cout << Farbnummern[ Ring1 ] << endl;    // Wert der Ring1 entspricht ausgeben 
    	cout << Farbnummern[ Ring2 ] << endl;
    	cout << Farbnummern[ Ring3 ] << endl;
    	cout << Farbnummern[ Ring4 ] << endl;
        return 0; 
    } 
    
    // Ab hier solltest du selbst mal nachlesen (irgendwo) wie das hier funktioneirt ;-) 
      void init_map(map<string,int>& data) 
    { 
      //in das Array schreibst du alle Kombinationen aus Farbname und Kennnummer 
      typedef pair<string, int> si_pair; 
       si_pair vals[]=   
      { 
        si_pair( "schwarz",    0), 
        si_pair( "braun",        1 ), 
        si_pair( "rot",        2 ), 
        si_pair( "orange",    3 ), 
        si_pair( "gelb",        4 ), 
        si_pair( "grün",        5 ), 
        si_pair( "blau",        6 ), 
        si_pair( "violett",    7 ), 
        si_pair( "grau",        8 ), 
        si_pair( "weiss",        9 ), 
      }; 
      int Vsize = sizeof( vals ) / sizeof( vals[0] ); 
      copy( vals, vals + Vsize, inserter( data, data.begin() ) ); 
    }
    


  • CStoll schrieb:

    Soulpincher schrieb:

    Nochmal Danke im V-o-r-r-a-u-s^^

    Erstaunlich, was sich die Leute alles einfallen lassen, um voraus nicht korrekt schreiben zu müssen 😃 *scnr*

    vorraus?

    😃



  • kk



  • neuer thread mit problem eröffnet



  • Soulpincher schrieb:

    So es geht aber... irgendwie wird nur 0 ausgegeben

    Ja, wenn du die init_map()-Funktion nicht aufrufst, wird die Zuordnung der Farben auch nicht initialisiert.

    Um den Linker-Fehler zu beheben, nützt es nichts, den Funktionsaufruf auszukommentieren. Du solltest entweder den Prototyp (vor der main()) und den Funktionsaufruf umbenennen in "init_map(...)" oder die Funktionsdefinition am Ende in "InitMap(...)", dann passen sie auch wieder zusammen.

    @NewProggie: Egal, wie kreativ du die Zensur zu umgehen versuchst, "vor-raus" ist und bleibt falsch.



  • Ok danke das Programm läuft wunderbar.... du warst mir große Hilfe

    🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 👍



  • Jetzt habe ich ein neues programm mit neuem problem^^

    #include <iostream>            // cin, cout 
    #include <string>            // string 
    #include <map>                // map 
    #include <algorithm>        // transform 
    #include <math.h>			// pow
    #include <conio.h>			//getche
    using namespace std; 
    
    int string2int(string st);
    
    int main ( void ) 
    { // int main
    
    char Auswahl = 'x';
    int Ergl = 0;
    int Erg1 = 0;
    char Auzwahl = 'x';
    long double Zahl = 0.0; 
    int tol = 0;
    long double Erg = 0.0;
    short int Multiplikator = 0;
    int Zahl1 = 0;
    int Zahl2 = 0;
    int Zahl3 = 0;
    int Zahl4 = 0;
    long double Zahl5 = 990000000000.0; 
    int exp =0;
    
        cout<<"Moechten sie [W] die Widerstandszahl oder [F] die Farbcodierung eingeben?\n"<<endl;
    	cin>>Auswahl;
    
    		if (Auswahl == 'F')
    
    		{ 
    		cout<<"\nGeben sie die gewuenschte Anzahl der Ringe an (V = 4 oder R = 5)\n"<<endl;
    		cin>>Auswahl;
    		}
    
    		string Ring1;
    		string Ring2;	
    		string Ring3;
    		string Ring4;
    		string Ring5;
    
    switch (Auswahl)
    
    { //switchcase
    
    case 'W':	cout <<"Wollen sie ihr ergebnis in 4 oder 5 Ringsystem  angegeben haben?  5/4"<<endl;
    			Auzwahl = getche();
    			cout<<"\n"<<endl;
    
    			cout<<"Wiederstand eingeben: ";
    			cin>>Zahl ;
    			cout<<"\n"<<endl;
    
    		switch (Auzwahl)
    		{
    			//5 Ringe
    		case '5':
    		{
    		cout<<"[20   ] fuer Tolleranzen von + 20.00% bis - 20.00%"<<endl;
    		cout<<"[10   ] fuer Tolleranzen von + 10.00% bis - 10.00%"<<endl;
    		cout<<"[ 5   ] fuer Tolleranzen von +  5.00% bis -  5.00%"<<endl;
    		cout<<"[ 2   ] fuer Tolleranzen von +  2.00% bis -  2.00%"<<endl;
    		cout<<"[ 1   ] fuer Tolleranzen von +  1.00% bis -  1.00%"<<endl;
    		cout<<"[ 0.5 ] fuer Tolleranzen von +  0.50% bis -  0.50%"<<endl;
    		cout<<"[ 0.25] fuer Tolleranzen von +  0.25% bis -  0.25%"<<endl;
    		cout<<"[ 0.10] fuer Tolleranzen von +  0.10% bis -  0.10%"<<endl;
    		cout<<"[ 0.05] fuer Tolleranzen von +  0.05% bis -  0.05%"<<endl;
    		cin>>tol ;
    		cout<<"\n"<<endl;break;
    		}
    
    		//4 Ringe
    		case '4':
    		{
    		cout<<"[20   ] fuer Tolleranzen von + 20.00% bis - 20.00%"<<endl;
    		cout<<"[10   ] fuer Tolleranzen von + 10.00% bis - 10.00%"<<endl;
    		cout<<"[ 5   ] fuer Tolleranzen von +  5.00% bis -  5.00%"<<endl;
    		cout<<"[ 2   ] fuer Tolleranzen von +  2.00% bis -  2.00%"<<endl;
    		cout<<"[ 1   ] fuer Tolleranzen von +  1.00% bis -  1.00%"<<endl;
    		cout<<"[ 0.5 ] fuer Tolleranzen von +  0.50% bis -  0.50%"<<endl;
    		cout<<"[ 0.25] fuer Tolleranzen von +  0.25% bis -  0.25%"<<endl;
    		cout<<"[ 0.10] fuer Tolleranzen von +  0.10% bis -  0.10%"<<endl;
    		cin>>tol ;
    		cout<<"\n"<<endl;break;
    		 }
    		}
    
    break;
    
    case 'V':
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"Geben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber"<<endl;
    		 cin>>Ring4;break;
    
    case 'R':
    
    		 cout<<"Geben sie bitte die Farbe des ersten Ringes an:\n\n";
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange "<<endl;
    		 cout<<"Gelbt "<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring1;
    
    		 cout<<"\nGeben sie bitte die Farbe des zweiten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring2;
    
    		 cout<<"Geben sie bitte die Farbe des dritten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau"<<endl;
    		 cout<<"Weiss\n\n"<<endl;
    		 cin>>Ring3;
    
    		 cout<<"Geben sie bitte die Farbe des vierten Ringes an:\n\n";
    		 cout<<"Schwarz"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Orange"<<endl;
    		 cout<<"Gelb"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring4;
    
    		 cout<<"Geben sie bitte die Farbe des fünften Ringes an:\n\n";
    		 cout<<"Keine"<<endl;
    		 cout<<"Braun"<<endl;
    		 cout<<"Rot"<<endl;
    		 cout<<"Gruen"<<endl;
    		 cout<<"Blau"<<endl;
    		 cout<<"Violett"<<endl;
    		 cout<<"Grau "<<endl;
    		 cout<<"Gold"<<endl;
    		 cout<<"Silber\n\n"<<endl;
    		 cin>>Ring5;break;
    
    default	:cout<<"Falsche eingabe";break;
    }//switchcase
    
       switch (Auswahl)
       {//switchcase2
    
    case 'W' :	
    
    	switch (Auzwahl)
    	{
    			//5 Ringe
    			case '5':	{
    						if (Zahl >= 100)
    						{
    						Erg = Zahl ;
    						for (int exp = 0; Erg >=1000; exp++)
    						{
    						Erg = Erg / 10;
    						}
    
    						//cout<<Erg;
    						if (exp <= 9)
    							{
    							int Zahl6 =  (int)Erg;
    							Zahl3 = Zahl6 % 10;			
    							Zahl4 = Zahl6 / 10;
    							Zahl2 = Zahl4 % 10;
    							Zahl1 = Zahl4 / 10;
    
    						cout <<"Ring 1 ="<<Zahl1<<endl;
    						cout <<"Ring 2 ="<<Zahl2<<endl;
    						cout <<"Ring 3 ="<<Zahl3<<endl;
    						cout <<"Ring 4 = 10^"<<exp<<endl;
    
    						}
    					else
    						{
    
    					cout<<"Fatal Error\n.\a\n.\a\n.\a "<<endl;
    						}
    					}
    					else
    					{
    						Erg = Zahl * 10;
    						for (int exp = -1; Erg <=10; exp--)
    						{
    
    						Erg = Erg * 10;
    
    						}
    						int Zahl6 = (int)Erg;
    						Zahl3 = Zahl6 % 10;
    
    						Zahl4 = Zahl6 / 10;
    
    						Zahl2 = Zahl4 % 10;
    						Zahl1 = Zahl4 / 10;
    
    						cout <<"Ring 1 ="<<Zahl1<<endl;
    						cout <<"Ring 2 ="<<Zahl2<<endl;
    						cout <<"Ring 3 ="<<Zahl3<<endl;
    						cout <<"Ring 4 = 10^"<<exp<<endl;
    						}
    		break;
    
    					}
    
    		//4 Ringe
    		case '4':
    				{
    				if(Zahl >= 10)
    
    				{
    
    				Erg = Zahl;
    				if( Zahl >=100)
    					{
    					Erg = Zahl / 10;
    					for (int exp = 1; Erg >=100; exp++)
    						Erg = Erg /10;
    						int Zahl6 = (int)Erg;
    						Zahl2 = Zahl6 % 10;
    						Zahl1 = Zahl6 / 10;
    
    						cout <<"Ring 1 ="<<Zahl1<<endl;
    						cout <<"Ring 2 ="<<Zahl2<<endl;
    						cout <<"Ring 3 = 10^"<<exp<<endl;break;
    					}
    
    					int Zahl6 = (int)Erg;
    					Zahl2 = Zahl6 % 10;
    					Zahl1 = Zahl6 / 10;
    
    					cout <<"Ring 1 ="<<Zahl1<<endl;
    					cout <<"Ring 2 ="<<Zahl2<<endl;
    					cout <<"Ring 3 = 10^"<<exp<<endl;
    					}
    				else
    				{
    					Erg = Zahl * 10;
    					for (int exp = -1; Erg <=1; exp--)
    					{
    					Erg = Erg * 10;
    					}
    					int Zahl6 = (int)Erg;
    					Zahl2 = Zahl6 % 10;
    					Zahl1 = Zahl6 / 10;
    
    					cout <<"Ring 1 ="<<Zahl1<<endl;
    					cout <<"Ring 2 ="<<Zahl2<<endl;
    					cout <<"Ring 3 = 10^"<<exp<<endl;
    					}
    				break;
    				}
    
    		}
    
    break;
    case 'V' :  
    	{
    			Erg1= pow(10,string2int(Ring3));
    			Ergl = (10*string2int(Ring1) + string2int(Ring2)) * Erg1;
    
    			cout << Erg << endl;
    
    	}
    case 'R' :
    	{
    			Erg1= pow(10,string2int(Ring4));
    			Ergl = (100*string2int(Ring1) + (10*string2int(Ring2))+ string2int(Ring3)) * Erg1;
    
    			cout << Ergl << endl;
    
    	}
    }//switchcase	
        return 0; 
    
    } //int main
    
    int string2int(string st)
    {
    
    	if (st == "schwarz")
    		return 0;
    
    	else if (st == "braun")
    		return 1;
    	else if (st == "rot")
    		return 2;
    	else if (st == "orange")
    		return 3;
    	else if (st == "gelb")
    		return 4;
    	else if (st == "gruen")
    		return 5;
    	else if (st == "blau")
    		return 6;
    	else if (st == "violett")
    		return 7;
    	else if (st == "grau")
    		return 8;
    	else if (st == "weiss")
    		return 9;
    	else if (st == "gold")
    		return -1;
    	else if (st == "silber")
    		return -2;
    
    	else return -3;
    
    }
    

    Ich muss bei der Wiederstandszahl eingabe die zahl einem wort zuordnen

    geht das so?:

    int int2string(int st)
    {
    
    	if (st == 0)
    	         return "schwarz";
    
    	else if (st == 1)
    	         return "braun";
    	else if (st == 2)
    		return "rot";
    	else if (st == 3)
    		return "orange";
    	else if (st == 4)
    		return "gelb";
    

Anmelden zum Antworten