У меня есть 2 ошибки, которые заставляют меня болеть и немного смущать.Почему мой компилятор показывает некоторые ошибки, которых не должно существовать?
Ошибка № 1:
ошибка C2679: бинарный '+ =': ни один оператор не найден, который принимает правый операнд типа 'зЬй :: basic_string < _Elem, _Traits, _Ax>' (или нет никакого приемлемого преобразования)
Код для этой ошибки:
CString lancuch1;
lancuch1 = "Znaleziono ";
lancuch1 += liczba1.str();
lancuch1 += " pozycji.";
И второй один, более странно:
Ошибка № 2:
ошибка C2440: 'инициализации': не удается преобразовать из 'станд :: _ Vector_iterator < _Ty, _Alloc>' на 'станд :: basic_string < _Elem, _Traits, _Ax>'
И эта ошибка у меня есть 7 раз, написанные на этот код:
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);
}
Скажи это мой плохой или визуала 2005 плохо. Я немного устал от странных ошибок, которые я действительно не понимаю. У кого-нибудь есть идея, как это исправить?
«мой плохой или визуальный 2005 год» -> 99,98% времени, это ошибка кодера. (возможно, 99,0% с [VS 2005] (http://stackoverflow.com/questions/38003015/why-my-compiler-is-showing-some-errors-that-shouldnt-exist#comment63450118_38003015)) – chux
Во-первых, не используйте Visual Studio 2005. Его действительно старая и массовая багги по сравнению с более новыми версиями. Издание сообщества VS2015 - это бесплатная загрузка. –
'(vector.begin() + i);' даст вам итератор, что вам придется разыгрывать то, что внутри. Предположительно, 'std :: string' – user4581301