PDA

Visualizza la versione completa : [C] Compilazione programma in Windows e in Mac


19pino87
16-12-2010, 12:20
Salve a tutti. Ho notato, non so se stranamente, che il codice che di seguito poster˛, funziona regolarmente su Windows Xp con DevC++ ma non su Mac OS X con Xcode. Sapreste spiegarmi il perchŔ??


#include <stdio.h>
main()
{
int c;
int i = 0;
while ((c=getchar()) != '$')
{
i++;
fflush(stdin);
}
printf("%d\n", i);
fflush(stdin);
getchar();
}

ramy89
16-12-2010, 12:45
Puoi postare uno screenshot dell' output?

YuYevon
16-12-2010, 12:48
Fino a quando ti attieni allo standard ISO non avrai problemi di portabilitÓ tra compilatori diversi, ammesso che questi siano conformi ad esso (cosa che non sempre si verifica). Quando ti allontani dagli standard, cominci ad avere problemi: la funzione fflush() richiamata su stdin non ha un comportamento standardizzato, dipende dalle implementazioni delle librerie dei vari compilatori, Ŕ per questo che nel passaggio da un ambiente all'altro hai problemi.

torn24
16-12-2010, 15:53
Ho letto un altro quesito su questo codice
il problema secondo me Ŕ che legge anche il nuova riga \n quindi se premi tre volte un tasto
pi¨ tre volte l'invio ti conterÓ sei invece di tre

prova cosi :




#include <stdio.h>
main()
{
char c;
int i = 0;
while ((c=getchar()) != '$')
{
if(c!='\n') //se il tasto non Ŕ invio incrementa
i++;


}
printf("%d\n", i);
getchar();//il primo getchar legge in newline nel buffer il secondo attende l'inserimento
//fflush (stdin) pulisce il buffer come getchar
getchar();
}

Loading