Zczytwywanie znaków z wejścia

Zczytwywanie znaków z wejścia
G3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

Witam, mam problem z funkcją wczytującą znaki z wejścia, ma ona rozróżniać liczby i symbole działań na liczbach

Kopiuj
 
int menu() {

    char s[100];
    int i, c;
    
    while ((s[0] = c = getchar()) == ' ' || c == '\t')
        ;
    s[1] = '\0';
    if (! isdigit(c) && c!= '.') 
      return c;      
    i = 0; 
    if (isdigit(c))    
        while (isdigit(s[++i] = c = getchar()))
            ;
    s[i] = '\0';
    if (c != EOF)
       putchar(c);
    

return NUMBER;
}

Czy jest ona stworzona dobrze?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Ma to być dwie liczby i jedno działanie na nich czy normalne wyrażenie matematyczne typu:
(1+3)*(4+1)+5*8^2 ?

G3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

3 4 + 2 *
odwrócona notacja polska :)

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
int main()
  {
   for(;;)
     {
      double v;
      char op[2];
      if(scanf(" %[+-*/]s",op)==1) printf("operacja: %c\n",op[0]);
      else if(scanf(" %lf",&v)==1) printf("liczba: %lf\n",v);
      else break;
     }
   return 0;
  }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.