Witam, jestem początkującym programistą i napotkałem sie dzisiaj na pewien (z pozoru bardzo prosty) problem z którym nie mogę sobie poradzić. Korzystam z:
Windowsa Xp
kompilatora Dev C++ 4.9.9.2
Listing programu:
#include
#include
#include
using namespace std;
int main()
{
string wyraz;
do{
cout << "Napisz jakis wyraz?";
cin>> wyraz;
cout<<"\n To nie jest prwadidlowy wyraz! \n";
}
while(wyraz!="kot");
cout<<"\n Brawo! O ten wyraz chodzilo.!";
getchar();
return 0;
}
Program się odpala (debuger nie pokazuje błędów), ale gdy wpisze w konsoli słowo kot program się “wywala”, zamiast przejść do linijki:
cout<<"\n Brawo! O ten wyraz chodzilo.!";
Mógłby mi ktoś powiedzieć dlaczego tak się dzieje?
bolok , nazwij proszę temat konkretnie, bez zbędnych problemów w tytule. Inaczej wyciągnę konsekwencje. Przeczytaj proszę ten temat. viewtopic.php?f=16&t=394978
A wypluwa jakiekolwiek komunikaty? Pomijając formatowanie i logikę, to kod jest poprawny w tym sensie, że powinien się kompilować i nie powinien się wywracać.
Ja bym zamiast takiego porównania (!=) zastosował metodę porównującą dostępną na rzecz obiektu wyraz i warunek przerobił na taki
while (wyraz.compare(string("kot")) != 0);
Spróbuj tak i daj znać czy się poprawiło.
Jeżeli nie to może jakieś informacje o rodzaju błędu, że nie można porównywać stringa z tablicą znaków, albo coś podobnego. Napisz co powiedział przed zakończeniem, albo daj zrzut ekranu.