Błąd przy kompilowaniu przy tablicy zadeklarowanej jako typ string
Ostatnio zmodyfikowano 2014-10-03 21:38
treekt Temat założony przez niniejszego użytkownika |
Błąd przy kompilowaniu przy tablicy zadeklarowanej jako typ string » 2014-10-03 19:15:31 Napisałem program który będzie losował wcześniej podane słówka i będzie trzeba podać do nich tłumaczenia które wcześniej sie zadeklarowało. Po poprawnym wpisaniu tłumaczenia wyświetla sie komunikat że odpowiedz jest poprawna, w przeciwnym wypadku że odpowiedzieliśmy błędnie. Na początku deklaruje ile będzie słówek. Potem podaje kolejko słówko->tłumaczenie i tak tyle razy ile miało być słówek. Wszystko zapisuje sie do tablic. Następnie losowane są słówka do których mamy wpisac odpowiedź. Słówka są losowane bez możliwości powtórzenia. Błąd pojawia się w 61 linijce "if(c = Tlumaczenie[wylosowane[wylosowanych]])" zaraz po kwadratowych nawiasach. Problem chyba wisi tutaj -> "string Slowko/, Tlumaczenie/, c;"Bo gdy zmieniłem typ na char wszystko działało tak jak chciałem natomiast char pozwala wypisywać tylko znaki a potrzebuje słów. Oto cały kod, bardzo proszę o wskazanie i poprawienie błędu żebym mógł to przeanalizować. #include <iostream> #include <cstdio> #include <cstdlib> #include <ctime> #include <string>
using namespace std;
bool czyBylaWylosowana( int iLiczba, int tab[], int ile ) { if( ile <= 0 ) return false; int i = 0; do { if( tab[ i ] == iLiczba ) return true; i++; } while( i < ile ); return false; }
int main() { int a,b=-1,x; cout<<"Wpisz: "; cin>>a; string Slowko[a], Tlumaczenie[a], c; while(b < a-1){ //Podanie słówek i tłumaczeń b++; cout<<"Podaj slowko: "; cin>>Slowko[b]; cout<<"Podaj tlumaczenie: "; cin>>Tlumaczenie[b]; }
srand( time( 0 ) ); int wylosowane[ a ]; int wylosowanych = 0; do { int liczba = ( rand() % a ) + 0; if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < a ); wylosowanych = 0; do{ cout<< Slowko[wylosowane[wylosowanych]] <<" - "; cin>>c; if(c = Tlumaczenie[wylosowane[wylosowanych]]) { cout<<"Odpowiedziales poprawnie!"<<endl; } else { cout<<"Odpowiedziales blednie!"<<endl; } wylosowanych++; } while( wylosowanych < a ); return 0; } |
|
stryku |
» 2014-10-03 19:39:16 zgaduje że miało być c == Tlumaczenie[ wylosowane[ wylosowanych ] ] ( == nie =) mogłeś też wkleić treść błędu EDIT jest też pare innych błędów jak np cout << "Wpisz: "; cin >> a; string Slowko[ a ], Tlumaczenie[ a ], c; nie tak się deklaruje tablice. Zrób to z wykorzystaniem wektora(std::vector). Najlepiej będzie jak wkleisz cały log kompilacji. Przynajmniej błędy, które wskazuje kompilator |
|
treekt Temat założony przez niniejszego użytkownika |
» 2014-10-03 21:18:25 Oh, dzięki nie wiedziałem o tym ==. To co w takim razie oznacza = a == PS: program juz dziala |
|
stryku |
» 2014-10-03 21:38:11 Jak to co oznacza? Operator przypisania. Przypisuje wartość do zmiennej. Jak do char próbujesz przypisać stringa, a nie przeciążyłeś operatora to się kompilator zezłości. Nie wiem za bardzo co miałeś na myśli mówiąc co oznacza. Przecież już tego używałeś, nawet w tym programie :p |
|
« 1 » |