To tylko literówka, może raz chociaż poświęciłbyś kilka sekund swojego życia i skopiowałbyś ten cały kod i sprawdził u siebie?
Mea culpa. Źle przeczytałem, myślałem, że pętla zaczyna się w linii 178.
getchar()
zwraca '\n'
wprowadzone przez Ciebie jako enter na klawiaturze. Dlatego jest while(getchar() != '\n')
w wymienionym wyżej poście.
Ale twoja pętla while nawet nie wiem co robi. Rozumiesz już o co mi chodzi?
Jak mam niby zamienić _getch(), który służy mi tylko do pobrania znaku, żeby okienko zbyt szybko się nie zamknęło, na scanf czy cin?
na:
while(cin.get()!='\n') {} cin.get();
lub:
while(getchar()!='\n') {} getchar();
Możesz z tego zrobić funkcję.
Poza tym jakoś nie wydaje mi się, żeby to było problemem.
To po kiego mistrz programowania na forum pyta skoro wszystko wie?
Drogi mistrzu, słuchaj mnie uważnie.
Podsumujmy jedyną zmianę jaką wprowadziłem to
scanf("%s", &znak)
zamiast znak=getchar();
teraz po wybraniu:
- program się wykonuje, i mogę wybrać ponownie co chcę robić // działa
- // działa
- jeśli wyraz nie jest palindromem // działa
jeśli wyraz jest palindromem // nie działa (zamyka się natychmiast po wykonaniu)
Problem drodzy ludzie tkwi w tej części:
for (int x = 1; x < dlugosc + 1; x++)
{
if (tyl[x - 1] != napis[(dlugosc)-x])
{
cout << "\n\nTen napis nie jest palindromem.";
_getch();
exit(0);
}
}
cout << "\n\nTen napis jest palindromem.";
_getch();
Jak pozbyć się tego exit(0), który wychodzi z programu omijając pytanie o ponowne uruchomienie? Nie mogę go usunąć, bo będzie z każdą iteracją wypisywał mi "Ten napis nie jest palindromem" a na końcu jeszcze "Ten napis jest palindromem" -> Jaka komenda ominie mi tzn. zakończy wykonywanie funkcji natychmiast i przejdzie do dalszego kodu????
- wykonuje się program, a zaś wyskakuje okienko z takim błędem: "Run-Time Check Failure #2 - Stack around the variable 'znak' was corrupted." - o co chodzi?