

C - buffer problem s nacitanim z klavesnice
Ahoj mam maly problem program facha jak ma jeho podstatou je ze uzivatel si zvoli koncove hranice cisiel potom svoje cislo zada a ak bude splnat poziadavky teda nebude presahovat hranice a nebude sa v nom nachadzat iny znak ako cislo tak sa program ukonci dovtedy ale bude furt dokola cisla zadavat. Problem je v tom ze po kazdom novom zadani znaku musi uzivatel stlacit viac enterov
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "KontrolaCiselnehoVstupu.h"
int main()
{
int min;
int max;
printf("Zadaj dolnu hranicu: ");
scanf("%d",&min);
printf("Zadaj hornu hranicu: ");
scanf("%d",&max);
printf("Poziadavka: cele cislo od %d po %d\n",min,max);
while(getInt(min,max)==0);
return 0;
}
int getInt(int min,int max)
{
const int POCET=10;
int kolkoKratAlokoval=1;
int pocetPrvkov=0;
int cislo;
char znak;
char *chybnyZnak;
char *cisla=(char *)malloc(POCET*sizeof(char));
printf("Vstup: ");
while(getchar()!='\n');
while((znak=getc(stdin))!='\n')
{
++pocetPrvkov;
if(pocetPrvkov%POCET==(POCET-1))
{
++kolkoKratAlokoval;
if((cisla=(char *)realloc(cisla,POCET*kolkoKratAlokoval*sizeof(cha r)))==NULL)
{
printf("Chyba realokacie");
return 1;
}
}
*(cisla+pocetPrvkov-1)=znak;
}
*(cisla+pocetPrvkov)='\0';
cislo=strtol(cisla,&chybnyZnak,10);
if(*chybnyZnak!='\0')
{
printf("Vystup: Zadane cislo obsahuje nepovoleny znak \"%c\". Zadaj cislo znovu!\n",*chybnyZnak);
if(cislo<min && cislo>max)
{
printf("Vystup: Zadane cislo je mimo povoleneho rozsahu. Zadaj cislo znovu!\n");
}
return 0;
}
if(*chybnyZnak=='\0')
{
if(cislo>=min && cislo<=max)
{
return 1;
}
else
{
printf("Vystup: Zadane cislo je mimo povoleneho rozsahu. Zadaj cislo znovu!\n");
return 0;
}
}
return 0;
}