Ich habe 2 Fehler, die mich krank und ein wenig verwirrt machen.Warum zeigt mein Compiler Fehler an, die nicht existieren sollten?
Fehler # 1:
Fehler C2679: binary '+ =': kein Betreiber gefunden, der einen rechten Operanden vom Typ 'std :: basic_string < _Elem, _Traits, _AX>' nimmt (oder gibt es keine akzeptable Umwandlung)
-Code zu diesem Fehler ist:
CString lancuch1;
lancuch1 = "Znaleziono ";
lancuch1 += liczba1.str();
lancuch1 += " pozycji.";
Und die zweite, mehr seltsam:
Fehler # 2:
Fehler C2440: 'initialisieren': Aus 'std :: _ Vector_iterator < _Ty, _Alloc>' nicht konvertieren 'std :: basic_string < _Elem, _Traits, _AX>'
und dieser Fehler i 7 mal an diesem Code geschrieben haben:
for(int i = 0 ; i < pojemnosc_vectora; i++){
std::string linijka = (vector.begin()+i);
char deli = ';';
int a = 0;
for(int i = 0; i<5; i++){
std::string pokico = linijka.substr(a, deli);
vector2.push_back(pokico);
a+=pokico.length();
}
}
int licznik_komunikatow=0;
for(int i=0; i<vector.size(); i++){
std::string komunikat1 = vector2.begin()+(licznik_komunikatow);
std::string komunikat2 = vector2.begin()+(licznik_komunikatow+1);
std::string komunikat3 = vector2.begin()+(licznik_komunikatow+2);
std::string komunikat4 = vector2.begin()+(licznik_komunikatow+3);
std::string komunikat5 = vector2.begin()+(licznik_komunikatow+4);
CString komun,komun1,komun2,komun3,komun4;
komun = komunikat1.c_str();
komun1 = komunikat2.c_str();
komun2 = komunikat3.c_str();
komun3 = komunikat4.c_str();
komun4 = komunikat5.c_str();
printf("Nazwa: %s \n Cena: %s \n Ilość: %s \n Gdzie: %s \n Kod: %s \n ", komun, komun1, komun2, komun3, komun4);
}
Sag mir, ist es mein schlechtes oder Visual von 2005 schlecht. Ich bin ein bisschen müde von seltsamen Fehlern, die ich nicht wirklich verstehe. Hat jemand eine Idee, wie man das beheben kann?
"mein schlechtes oder visuelles 2005 schlechtes" -> 99,98% der Zeit, ist es der Fehler des Kodierers. (vielleicht 99,0% mit [VS 2005] (http://stackoverflow.com/questions/38003015/why-my-compiler-is-showing-some-errods-thouldnt-exist#comment63450118_38003015)) – chux
Erstens, nicht verwenden Visual Studio 2005. Es ist wirklich alt und massiv Buggy im Vergleich zu neueren Versionen. VS2015 Community Edition ist ein kostenloser Download. –
'(vector.begin() + i);' gibt Ihnen einen Iterator, den Sie dereferenzieren müssen, um zu erhalten, was drin ist. Vermutlich eine 'std :: string' – user4581301