Skocz do zawartości

Zamiennik Getch=Getchar?


michaues

Rekomendowane odpowiedzi

Mam do napisania prosty program znajdujacy pozycje wybranego znaku w tekscie.

Napisalem z lekka pomoca cos takiego:

 

 

#include <stdio.h>

#include <conio.h>

 

 

int main()

{

int i=0;

char tab[100], sz;

printf("Podaj zdanie do sprawdzenia: ");

scanf("%s",tab);

printf("Podaj szukany znak ");

sz=getch();

printf("'%c' jest na pozycji:\n",sz);

while(tab[i]!='\0')

{

if(tab[i]==sz |tab[i]==sz-32)

printf("%d, ",i+1);

i++;

}

getch();

}

Ale piszac to na windowsie nie wiedzialem ze nie ma biblioteki conio.h na fedorze wiec getch nie dziala, a getchar od razu przeskakuje mi na koniec programu nawet nie pytajac o znak;/

Moglby ktos pomoc?

Odnośnik do komentarza
Udostępnij na innych stronach

dodaj jeszcze jeden getchar albo fflush(stdin) przed tym gdzie wczytujesz znak (zeby oczyscic buffor - z pustego znaku nie pobierze i grzecznie poczeka az podasz znak).

 

Dlaczego jeszcze jeden getchar - bo enter to w rzeczywistosci 2 znaki 0Ah 0Dh, kiedy wczytujesz tekst pozostaje w buforze to nieszczensne 0D ktrore zostaje wczytane do twojego getchara, dlatego program przeskakuje dalej.

 

GL&HF

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 month later...

Przyznam szczerze, ze tez mnie to gryzlo z pól roku temu, dziekuje bardzo Fallen za informacje, nareszcie mozna wznowic programy, które gdzies sie kurza z winy braku getch :D

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...