Bitte angucken und helfen
-
Also ich habs jetzt teilweise hinbekommen aber.....
es wurde irgendwie ne neue Datei geladen T.T
// utility standard header #if _MSC_VER > 1000 #pragma once #endif #ifndef _UTILITY_ #define _UTILITY_ #include <iosfwd> #ifdef _MSC_VER #pragma pack(push,8) #endif /* _MSC_VER */ _STD_BEGIN // TEMPLATE STRUCT pair template<class _T1, class _T2> struct pair { typedef _T1 first_type; typedef _T2 second_type; pair() : first(_T1()), second(_T2()) {} pair(const _T1& _V1, const _T2& _V2) : first(_V1), second(_V2) {} template<class U, class V> pair(const pair<U, V> &p) : first(p.first), second(p.second) {} _T1 first; _T2 second; }; template<class _T1, class _T2> inline bool __cdecl operator==(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (_X.first == _Y.first && _X.second == _Y.second); } template<class _T1, class _T2> inline bool __cdecl operator!=(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (!(_X == _Y)); } template<class _T1, class _T2> inline bool __cdecl operator<(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (_X.first < _Y.first || !(_Y.first < _X.first) && _X.second < _Y.second); } template<class _T1, class _T2> inline bool __cdecl operator>(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (_Y < _X); } template<class _T1, class _T2> inline bool __cdecl operator<=(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (!(_Y < _X)); } template<class _T1, class _T2> inline bool __cdecl operator>=(const pair<_T1, _T2>& _X, const pair<_T1, _T2>& _Y) {return (!(_X < _Y)); } template<class _T1, class _T2> inline pair<_T1, _T2> __cdecl make_pair(const _T1& _X, const _T2& _Y) {return (pair<_T1, _T2>(_X, _Y)); } // ITERATOR TAGS (from <iterator>) struct input_iterator_tag {}; struct output_iterator_tag {}; struct forward_iterator_tag : public input_iterator_tag {}; struct bidirectional_iterator_tag : public forward_iterator_tag {}; struct random_access_iterator_tag : public bidirectional_iterator_tag {}; // TEMPLATE CLASS iterator (from <iterator>) template<class _C, class _Ty, class _D = ptrdiff_t> struct iterator { typedef _C iterator_category; typedef _Ty value_type; typedef _D distance_type; }; template<class _Ty, class _D> struct _Bidit : public iterator<bidirectional_iterator_tag, _Ty, _D> {}; template<class _Ty, class _D> struct _Ranit : public iterator<random_access_iterator_tag, _Ty, _D> {}; // TEMPLATE CLASS iterator_traits (from <iterator>) template<class _It> struct iterator_traits { typedef _It::iterator_category iterator_category; typedef _It::value_type value_type; typedef _It::distance_type distance_type; }; // TEMPLATE FUNCTION _Iter_cat (from <iterator>) template<class _C, class _Ty, class _D> inline _C __cdecl _Iter_cat(const iterator<_C, _Ty, _D>&) {_C _IterCatTag; _C* _pIterCatTag; _pIterCatTag = &_IterCatTag; // Workaround for C4700 warning return (_IterCatTag); } template<class _Ty> inline random_access_iterator_tag __cdecl _Iter_cat(const _Ty *) {random_access_iterator_tag _RandIterTag; random_access_iterator_tag* _pRandIterTag; _pRandIterTag = &_RandIterTag; // Workaround for C4700 warning return (_RandIterTag); } // TEMPLATE FUNCTION _Distance template<class _II> inline _CNTSIZ(_II) __cdecl distance(_II _F, _II _L) {_CNTSIZ(_II) _N = 0; _Distance(_F, _L, _N, _Iter_cat(_F)); return (_N); } template<class _II, class _D> inline void __cdecl _Distance(_II _F, _II _L, _D& _N) {_Distance(_F, _L, _N, _Iter_cat(_F)); } template<class _II, class _D> inline void __cdecl _Distance(_II _F, _II _L, _D& _N, input_iterator_tag) {for (; _F != _L; ++_F) ++_N; } template<class _II, class _D> inline void __cdecl _Distance(_II _F, _II _L, _D& _N, forward_iterator_tag) {for (; _F != _L; ++_F) ++_N; } template<class _II, class _D> inline void __cdecl _Distance(_II _F, _II _L, _D& _N, bidirectional_iterator_tag) {for (; _F != _L; ++_F) ++_N; } template<class _RI, class _D> inline void __cdecl _Distance(_RI _F, _RI _L, _D& _N, random_access_iterator_tag) {_N += _L - _F; } // TEMPLATE CLASS reverse_iterator (from <iterator>) template<class _RI, class _Ty, class _Rt = _Ty&, class _Pt = _Ty *, class _D = ptrdiff_t> class reverse_iterator : public _Ranit<_Ty, _D> { public: typedef reverse_iterator<_RI, _Ty, _Rt, _Pt, _D> _Myt; typedef _RI iter_type; typedef _Rt reference_type; typedef _Pt pointer_type; reverse_iterator() {} explicit reverse_iterator(_RI _X) : current(_X) {} _RI base() const {return (current); } _Rt operator*() const {return (*(current - 1)); } _Pt operator->() const {return (&**this); } _Myt& operator++() {--current; return (*this); } _Myt operator++(int) {_Myt _Tmp = *this; --current; return (_Tmp); } _Myt& operator--() {++current; return (*this); } _Myt operator--(int) {_Myt _Tmp = *this; ++current; return (_Tmp); } _Myt& operator+=(_D _N) {current -= _N; return (*this); } _Myt operator+(_D _N) const {return (_Myt(current - _N)); } _Myt& operator-=(_D _N) {current += _N; return (*this); } _Myt operator-(_D _N) const {return (_Myt(current + _N)); } _Rt operator[](_D _N) const {return (*(*this + _N)); } protected: _RI current; }; template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator==( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (_X.base() == _Y.base()); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator!=( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (!(_X == _Y)); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator<( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (_Y.base() < _X.base()); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator>( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (_Y < _X); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator<=( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (!(_Y < _X)); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline bool __cdecl operator>=( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (!(_X < _Y)); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline _D __cdecl operator-( const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (_Y.base() - _X.base()); } template<class _RI, class _Ty, class _Rt, class _Pt, class _D> inline reverse_iterator<_RI, _Ty, _Rt, _Pt, _D> __cdecl operator+(_D _N, const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y) {return (reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>( _Y.base() - _N)); } // TEMPLATE CLASS istreambuf_iterator (from <iterator>) template<class _E, class _Tr = char_traits<_E> > class istreambuf_iterator : public iterator<input_iterator_tag, _E, _Tr::off_type> { public: typedef istreambuf_iterator<_E, _Tr> _Myt; typedef _E char_type; typedef _Tr traits_type; typedef _Tr::int_type int_type; typedef basic_streambuf<_E, _Tr> streambuf_type; typedef basic_istream<_E, _Tr> istream_type; istreambuf_iterator(streambuf_type *_Sb = 0) _THROW0() : _Sbuf(_Sb), _Got(_Sb == 0) {} istreambuf_iterator(istream_type& _I) _THROW0() : _Sbuf(_I.rdbuf()), _Got(_I.rdbuf() == 0) {} const _E& operator*() const {if (!_Got) ((_Myt *)this)->_Peek(); return (_Val); } const _E *operator->() const {return (&**this); } _Myt& operator++() {_Inc(); return (*this); } _Myt operator++(int) {if (!_Got) _Peek(); _Myt _Tmp = *this; _Inc(); return (_Tmp); } bool equal(const _Myt& _X) const {if (!_Got) ((_Myt *)this)->_Peek(); if (!_X._Got) ((_Myt *)&_X)->_Peek(); return (_Sbuf == 0 && _X._Sbuf == 0 || _Sbuf != 0 && _X._Sbuf != 0); } private: void _Inc() {if (_Sbuf == 0 || _Tr::eq_int_type(_Tr::eof(), _Sbuf->sbumpc())) _Sbuf = 0, _Got = true; else _Got = false; } _E _Peek() {int_type _C; if (_Sbuf == 0 || _Tr::eq_int_type(_Tr::eof(), _C = _Sbuf->sgetc())) _Sbuf = 0; else _Val = _Tr::to_char_type(_C); _Got = true; return (_Val); } streambuf_type *_Sbuf; bool _Got; _E _Val; }; template<class _E, class _Tr> inline bool __cdecl operator==(const istreambuf_iterator<_E, _Tr>& _X, const istreambuf_iterator<_E, _Tr>& _Y) {return (_X.equal(_Y)); } template<class _E, class _Tr> inline bool __cdecl operator!=(const istreambuf_iterator<_E, _Tr>& _X, const istreambuf_iterator<_E, _Tr>& _Y) {return (!(_X == _Y)); } // TEMPLATE CLASS ostreambuf_iterator (from <iterator>) template<class _E, class _Tr = char_traits<_E> > class ostreambuf_iterator : public iterator<output_iterator_tag, void, void> { typedef ostreambuf_iterator<_E, _Tr> _Myt; public: typedef _E char_type; typedef _Tr traits_type; typedef basic_streambuf<_E, _Tr> streambuf_type; typedef basic_ostream<_E, _Tr> ostream_type; ostreambuf_iterator(streambuf_type *_Sb) _THROW0() : _Failed(false), _Sbuf(_Sb) {} ostreambuf_iterator(ostream_type& _O) _THROW0() : _Failed(false), _Sbuf(_O.rdbuf()) {} _Myt& operator=(_E _X) {if (_Sbuf == 0 || _Tr::eq_int_type(_Tr::eof(), _Sbuf->sputc(_X))) _Failed = true; return (*this); } _Myt& operator*() {return (*this); } _Myt& operator++() {return (*this); } _Myt& operator++(int) {return (*this); } bool failed() const _THROW0() {return (_Failed); } private: bool _Failed; streambuf_type *_Sbuf; }; // TEMPLATE OPERATORS namespace rel_ops { template<class _Ty> inline bool __cdecl operator!=(const _Ty& _X, const _Ty& _Y) {return (!(_X == _Y)); } template<class _Ty> inline bool __cdecl operator>(const _Ty& _X, const _Ty& _Y) {return (_Y < _X); } template<class _Ty> inline bool __cdecl operator<=(const _Ty& _X, const _Ty& _Y) {return (!(_Y < _X)); } template<class _Ty> inline bool __cdecl operator>=(const _Ty& _X, const _Ty& _Y) {return (!(_X < _Y)); } _STD_END _STD_END #ifdef _MSC_VER #pragma pack(pop) #endif /* _MSC_VER */ #endif /* _UTILITY_ */ /* * Copyright (c) 1995 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. */ /* * This file is derived from software bearing the following * restrictions: * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this * software and its documentation for any purpose is hereby * granted without fee, provided that the above copyright notice * appear in all copies and that both that copyright notice and * this permission notice appear in supporting documentation. * Hewlett-Packard Company makes no representations about the * suitability of this software for any purpose. It is provided * "as is" without express or implied warranty. */
O.o
jetzt versteh ich garnix mehr
-
Was soll denn mit dieser Datei jetzt sein? Das ist (offenbar) der Standard-Header <utility> (der wird von <map> eingebunden, das die Schlüssel/Wert-Paare als std::pair anlegt).
PS: Was spricht denn für dich gegen die Verwendung von Strings? Die Alternative dazu wäre höchstens char* - und das ist wesentlich unangenehmer in der Handhabung.
-
Ich bin noch schüler in einer technik schule...
ich habe noch nicht so lange informatik und die einzigen arten der verarbeitung die ich bis jetzt gelernt habe sind if-else und switch-case....
allein das string zu verwenden habe ich mir rausgesucht... um es weiterzuverwenden mangelt es mir an verständnis der weiterverarbeitung gegenüber!^^
-
*ding* ^^
hab ne idee..... hast du net zufällig TS,Ventrilo oder Skype????
-
Hey hatte gerade nix zu tun und hab kurz ein Beispiel gebastelt...
#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 ) { 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 << "Bitte Farbe eingeben: "; cin >> Ring1; 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() ) ); }
@CStoll: Ich hab das mal nen bisschen formatiert. Ich fand das sah richtig hässlich aus
Gruß
Edit: Verdammt! Das Forum hat meinen Code verunstaltet, ich hatte mir so viel Mühe bei der Formatierung gegeben
-
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 Klassenvorlageis 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?basic_string@DU?allocator@D@2@@std@@HU?basic_string@DU?allocator@D@2@@std@@@2@V?$al
locator@H@2@@std@@@Z)
Debug/Yeah^^Cpp1.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweisekannst 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?