Portál AbcLinuxu, 8. května 2025 15:39
int main(){
puts("Vitejte v bundas kalkulacce\npocitejte:\n");
int vs1, vs2;
char b;
do{
printf("Zadejte prvni cislo: ");
scanf("%d", &vs1);
if(vs1 == 666){
break;
}
printf("Zadejte druhe cislo: ");
scanf("%d", &vs2);
if(vs2 == 666){
break;
}
printf("\njakou aritmetickou operaci si prejete?\nDELIT ---- /\nNASOBIT ---- *\nSCITAT ---- +\nODCITAT ---- -\n\nVYBER: \n");
scanf("%c", &b);
switch(b){
case '/' : printf("Vysledek je: %d\n", vs1/vs2);
break;
case '*' : printf("Vysledek je: %d\n", vs1*vs2);
break;
case '+' : printf("Vysledek je: %d\n", vs1+vs2);
break;
case '-' : printf("Vysledek je: %d\n", vs1-vs2);
break;
case 'e' : printf("aplikace se ukoncuje...");
break;
}
}while(1);
return 0;
}
scanf("\n%c", &b);
case 'e' : printf("aplikace se ukoncuje..."); return 0;
%c ... The usual skip of leading white space is suppressed. To skip white space first, use an explicit space in the format.
scanf
toto:
while(getchar() != '\n' );(Vybereš tím vstupní buffer, minimálně tu desítku co ti tam letí)
conio.h
(klasicky getch()
). to som si len tak zaspominal .. scanf
s pouzitim \n
je IMO skor workaround ako riesenie .. ale pre zadanie ulohy staci ..
scanf()
.. jeho priklad nie je zly, luky-ho citacia z man-u je to, co hladal .. tj, ci pouzije
scanf(" %c", &c); scanf("\n%c, &c);je to iste .. workaround ale asi nebolo spravne slovo na to riesenie (kedze man o tom pise). aby som to uviedol na spravnu mieru, nemal som pravdu ani s tym DOSovskym
getch()
; "problem" so vstupnym bufferom je rovnaky a ma i rovnake riesenie.
scanf(" %*s");
Viz zde kde jsme to řešily: [C] Načtení celých čísel
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.