I C när du skriver tecken så läggs dessa i en buffert
scanf läser från den bufferten, men den läser bara vad du säger till den att läsa.
m.a.o.
när du kör programmet
Kod:
int n = 0;
printf(">");
scanf("%d",&n);
så ligger ENTER också i bufferten (som beroende på ditt operativ system kan vara ett eller två tecken)
När det andra scanf påträffas ligger ENTER kvar och när du föröker läsa från bufferten så returnerar scanf 0 m.a.o. inget läst.
Det är därför bra att alltid kolla retur värdet av scanf (och andra runtime funktioner)
Som alternativ kan du istället använda fgets för att läsa från tangentbordet och sedan sscanf för att läsa ut:
Kod:
char input[64];
if (fgets(input,sizeof(input),stdin) != NULL)
{
if (sscanf(input,"%d",&n) == 1)
{
printf("%d lästes",n);
}
}