Zakończenie działania programu po naciśnięciu wybranego klawisza

0
 #include<stdio.h> 
#include<string.h>
#include<conio.h>

int main () 
{ 
char l[100];
int p = 1, w = 0, s, x;  

printf("Program sluzy do konwersji liczb z systemow \nod dwojkowego do dziesietnego na dziesietny\n\nPodaj system liczbowy <2,10>:\n"); 
scanf("%d", &s);
printf("Podaj liczbe, ktora chcesz przekonwertowac:\n"); 
scanf("%s", &l);
printf("Liczba ");
printf("%s",l);
printf (" w systemie wybranym przez uzytkownika w systemie dziesietnym wynosi:\n");

for (int i = strlen(l)-1; i >= 0; i--)
{
x = l[i]-'0';
w = w + x*p;
p = p*s;
}

printf("%d",w);

getch();
return 0; 
}

Chciałbym, żeby program kończył mi się po wciśnięciu wybranego przycisku, a w przeciwnym razie kontynuował działanie od początku.

0

wstaw kod w pętle while:

 while (getchar() != TWOJ WYBRANY ZNAK np. 'd')
0

hmm, a jeśli chce mieć konkretny komunikat wyświetlany pod koniec programu? Chodzi mi o to, żeby na początku program mi się wyświetlił, a po wyświetleniu wyniku zadał pytanie o to czy zacząć program od nowa.

0

w jakimś momencie chcesz chyba wprowadzić ten klawisz?
użyj nieskończonej pętli na cały kod:

for (;;) 

daj scanf/getchar() i testuj czy to wybrany klawisz czy nie. Jeżeli tak to

break 

jak nie to nic nie robisz. Jest wiele sposobów.
a poza pętlą daj ten komunikat.

0

ktoś pomoże?

chce zrobić tak, żeby po wykonaniu pierwszego działania programu wyświetlił mi ten komunikat i albo zakończył, albo robił to od nowa.

0

Zdebuguj to sobie ale powinno być mniej więcej tak:

#include<stdio.h> 
#include<string.h>
#include<conio.h>
 
int main () 
{ 
char l[100], odp;
int p = 1, w = 0, s, x;  
 
for ( ; ; )
{
printf("Program sluzy do konwersji liczb z systemow \nod dwojkowego do dziesietnego na dziesietny\n\nPodaj system liczbowy <2,10>:\n"); 
scanf("%d", &s);
printf("Podaj liczbe, ktora chcesz przekonwertowac:\n"); 
scanf("%s", &l);
printf("Liczba ");
printf("%s",l);
printf (" w systemie wybranym przez uzytkownika w systemie dziesietnym wynosi:\n");
 
for (int i = strlen(l)-1; i >= 0; i--)
{
x = l[i]-'0';
w = w + x*p;
p = p*s;
}
 
printf("%d",w);

printf("Czy chcesz kontynuowac prace programu t/n?\n");
getchar(odp)
if (odp == 't')
  break;
}

return 0; 
} 

mam nadzieję że rozumiesz znaczenie tej pętli for.

0

Dziękuje za pomoc. Rozumiem tą pętle.

1 użytkowników online, w tym zalogowanych: 0, gości: 1