Newsgroup: it.comp.lang.c
Titolo: getchar(code) problema

ragazzi devo scrivere questo programma sotto unix
ma quando vado a compilarlo mi spunta il seguente messaggio: unsatisfied
symbols ghetchar (code) come posso risolvere!!!!
è un libreiria che non viene caricata!????
#include <stdio.h>
int main()
{
    int n, decine, unita;
    while (1) {
      printf("Inserire un numero (0 < n < 40): ");
      scanf("%d", &n); while (getchar() != '\n') ;
      if ((n > 0) && (n < 40))
        break;
    }
    decine = n / 10;
    unita = n % 10;
    switch (decine) {
      case 1: printf("X"); break;
      case 2: printf("XX"); break;
      case 3: printf("XXX"); break;
      case 4: printf("XL"); break;
    }
    switch (unita) {
      case 1: printf("I"); break;
      case 2: printf("II"); break;
      case 3: printf("III"); break;
      case 4: printf("IIII"); break;
      case 5: printf("V"); break;
      case 6: printf("VI"); break;
      case 7: printf("VII"); break;
      case 8: printf("VIII"); break;
      case 9: printf("VIIII"); break;
    }
    return 0;
}

 symbols ghetchar (code) come posso risolvere!!!!
elimina il pezzo:
while (getchar() != '\n') ;
e il programma dovrebbe funzionare ugualmente.
Magari prima del return 0;
metti un printf("\n");
ciao,
g.

 symbols ghetchar (code) come posso risolvere!!!!
Semmai sarà "getchar()", non "ghetchar()".
Impossibile, comunque, che non funzioni, l'inclusione di stdio.h è
quanto basta.
Quel programma l'ho scritto e l'ho compilato con Dev C++.  Funziona
pefettamente.
p.s.: eliminare la riga con getchar() non è una soluzione al problema.

 p.s.: eliminare la riga con getchar() non è una soluzione al problema.
perche' ? (forse non mi e' chiaro il Problema...)
g.

> perche' ? (forse non mi e' chiaro il Problema...)
Innanzitutto perché è necessario che vi sia e vi rimanga, poi perché
non risolve il problema.  Purtroppo non mi viene altra motivazione
maggiormente valida.


Oggi non mi sembri molto comunicativo :-)
Vuoi forse riferirti al fatto che vuoi forzare lo svuotamento
del buffer dopo la scanf ?
Se e' questo, capisco e condivido la motivazione in generale, ma non la
necessita' nel caso particolare.
Mi sembra che il programmino funzioni bene anche senza lo svuotamento,
per input legittimi. per quello suggerivo di toglierlo.
(considerando le capacita' in C dell'esaminando....)
Quello che deve fare per input non legittimi (es.:  444 12 )
non mi sembra facesse parte delle richieste del problema.
ciao,
g.

 per input legittimi.
No, non lo fa.  Prova con "kk".

"grazie ragazzi ma funziona adesso !!!!
forse essendo deficente mettevo ghetcar al posto getchar!!!!:-))))
grazie ancora di cuore


io consideravo legittimi solo gli input legittimi,
cioe' i numeri da 1 a 39. kk non e' legittimo.
Comunque non avevo pensato che un input non numerico
producesse un tale danno... effettivamente e'
meglio metterci una pezza.
ciao,
g.


Il problema potrebbe verificarsi per il fatto che il compilatore di 
fabrizio lavora sotto unix.
Marcello

 è un libreiria che non viene caricata!????
Poi risolverai questo problema.
Intanto prova con questo codice.
Dovrebbe essere più che sufficiente per il compito.
#include <stdio.h>
void arabian_to_roman (int n);
int main()
  {
    int n;
    int i;
    for (i = 1; i < 40; i++)
      {
        n = i;
        arabian_to_roman (n);
        if (i % 5 ==0)
          printf ("\n");
        else printf ("\t");
      }
    scanf ("%d", &i);
  }
void arabian_to_roman (int n)
  {
    int i, decine, cinquine, unita;
    decine = n / 10;
    for (i = 0; i < decine; i++)
      {
        printf("X");
        n-=10;
      }
    cinquine = n / 5;
    if (n == 9)
      {
        printf("IX");
        n-=9;
      }
    else
    for (i = 0; i < cinquine; i++)
      {
        printf("V");
        n-=5;
      }
    unita = n;
    if (n == 4)
      {
        printf("IV");
        n-=4;
      }
    else
    for (i = 0; i < unita; i++)
      printf("I");
  }

 fabrizio lavora sotto unix.
No, neanche.  Le funzioni usate sono standard.

 grazie ancora di cuore
Mi domando anche quale errore di copiatura tu abbia fatto con il mio
codice... anche quello dovrebbe funzionare!
Tommy

ma quando vado a compilarlo mi spunta il seguente messaggio: unsatisfied
   E` molto probabile che tu abbia smesso di leggere questo newsgroup,
avendo *ingiustamente* [1] avuto soluzione al tuo problema, una
soluzione volutamente brutta, ma pur sempre una soluzione.
   Comunque, non credi che, quando non sarai in grado di spiegare come
funziona il tuo programma, al tuo professore potrebbe venire in mente
di fare una ricerchina con google, immaginando che tu abbia copiato il
codice da chissa` dove, trovando immediatamente l'inutile sequenza di
thread che hai generato?
   Non che sia importante: ti bocceranno comunque, se le sQuole
funzionano ancora un poco.
[1] Il presente furbetto, e tutti gli amichetti a cui lo dira` non
mancheranno di ripresentarsi, fidatevi.
-- 
S.L.