Adrianek14 Posted November 30, 2013 Report Share Posted November 30, 2013 Witam, mam problem z poniższym kodem (przedstawię urywek):int wyluskanie (char studenci)int main(){ char studenci; cin >> studenci; wyluskanie (studenci); //reszta kodu}int wyluskanie (char studenci){ for (int i=0; i<studenci.lenght(); i++); //reszta kodu}Problem jest z "int wyluskanie (char studenci)", przy debugowaniu wywala mi taki błąd:"error C2228: left of '.lenght' must have class/struct/union".Ktoś wie dlaczego jest taki błąd? I jak go naprawić? Quote Link to comment Share on other sites More sharing options...
mateusz(stefan) Posted November 30, 2013 Report Share Posted November 30, 2013 char studenci;Już na tym etapie robisz pierwszy błąd.Char przechowuje jedynie pojedynczy znak, raczej potrzeba Ci tablicy tego typu.studenci.lenght()Tu jest kolejny błąd, a kompilator Ci o nim mówi wprost->left of '.lenght' must have class/struct/union". Zmienna typu char na pewno nie jest tutaj klasą, strukturą czy unią.Porwałeś się trochę z motyką na słońce. Jak już poprawisz pierwszy błąd, to zalecam skorzystanie z funkcji "strlen" z biblioteki "string.h". Quote Link to comment Share on other sites More sharing options...
wies.niak Posted December 1, 2013 Report Share Posted December 1, 2013 Jak już poprawisz pierwszy błąd, to zalecam skorzystanie z funkcji "strlen" z biblioteki "string.h".Ja bym raczej zmienił char na string, bo raczej o to chodzi. Quote Link to comment Share on other sites More sharing options...
mateusz(stefan) Posted December 1, 2013 Report Share Posted December 1, 2013 Też można. IMO jednak warto zacząć od opanowania podstaw. Quote Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted December 1, 2013 Report Share Posted December 1, 2013 Też można. IMO jednak warto zacząć od opanowania podstaw.Czyli sugerujesz, żeby zaczynać od pisania na maszynie turinga, żeby przypadkiem technologia której używamy nie ułatwiała nam pracy? Quote Link to comment Share on other sites More sharing options...
Sevard Posted December 1, 2013 Report Share Posted December 1, 2013 Jeśli kod jest pisany w C++ to używamy struktur i rozwiązań z C++, a nie z C. Używanie char* to nie są podstawy C++, tylko C. char* jest wprowadzone w C++ tylko po to, by zachować zgodność wstecz i nie powinno się tego używać. Quote Link to comment Share on other sites More sharing options...
Bantu Posted December 5, 2013 Report Share Posted December 5, 2013 Prawda jest taka, że nie zawsze to co daje nam C++ jest lepsze od tego co jest w C. Ja do dzisiaj używam tylko rzutowań w stylu C. Niekiedy też są takie momenty gdy niezbędna jest wiedza z czystego C, bo po prostu nie możemy użyć pewnych elementów języka C++ np. stringów.A tak wracając do tematu to nie powinna być zmienna studenci zdefiniowana jako pusta tablica? A następnie sprawdzona jej długość poprzez funkcję strlen(). Bo jak dla mnie to deklaracja, która jest w tym kodzie pobierze tylko pierwszy znak z wejścia. Quote Link to comment Share on other sites More sharing options...