test
This commit is contained in:
parent
45727a1bc9
commit
884ed60648
@ -1,6 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MAX_VELKOST 10
|
||||
@ -77,6 +78,15 @@ bool je_platna_operacia(char operacia) {
|
||||
return operacia == '+' || operacia == '-' || operacia == '*' || operacia == '/';
|
||||
}
|
||||
|
||||
// Funkcia na validáciu, či je vstup platným číslom
|
||||
bool je_platne_cislo(const char *vstup) {
|
||||
char *koniec;
|
||||
strtof(vstup, &koniec); // Prevedie reťazec na číslo
|
||||
|
||||
// Ak ukazovateľ koniec nesmeruje na '\0', vstup obsahuje neplatné znaky
|
||||
return *koniec == '\n' || *koniec == '\0';
|
||||
}
|
||||
|
||||
int main() {
|
||||
KalkulackaZasobnik kalkulacka;
|
||||
inicializuj(&kalkulacka);
|
||||
@ -89,26 +99,14 @@ int main() {
|
||||
break;
|
||||
}
|
||||
|
||||
float hodnota;
|
||||
char operacia;
|
||||
char *zvysok;
|
||||
|
||||
if ((sscanf(vstup, "%f", &hodnota) == 1) && (strtok(vstup, " \n") != NULL)) {
|
||||
// Kontrolujeme, či za číslom nie je ďalší neplatný vstup
|
||||
if (strtok(NULL, " \n") == NULL) {
|
||||
if (je_platne_cislo(vstup)) {
|
||||
float hodnota = strtof(vstup, NULL); // Prevedieme platné číslo
|
||||
vloz(&kalkulacka, hodnota);
|
||||
zobraz_zasobnik(&kalkulacka);
|
||||
} else {
|
||||
printf("bad input\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) { // Kontrolujeme, či vstup je operácia
|
||||
char operacia = vstup[0];
|
||||
|
||||
else if (sscanf(vstup, "%c", &operacia) == 1) {
|
||||
if (!je_platna_operacia(operacia)) {
|
||||
printf("bad input\n");
|
||||
return 0;
|
||||
}
|
||||
switch (operacia) {
|
||||
case '+':
|
||||
if (scitat(&kalkulacka)) {
|
||||
@ -143,10 +141,11 @@ int main() {
|
||||
} else {
|
||||
vloz(&kalkulacka, b / a);
|
||||
zobraz_zasobnik(&kalkulacka);
|
||||
}
|
||||
} else {
|
||||
printf("no input\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user