Δημοσιεύτηκε: 28 Ιούλ 2011, 15:41
από migf1
migf1 έγραψε:Διαβάζει και το ENTER που πατάς μετά τον χαρακτήρα, και το παίρνει σαν είσοδο του επόμενου getchar()... αν έχεις Windows, βάλε ένα fflush(stdin) μπροστά από το getchar() και θα δεις πως θα φτιάξει ;)


Ή για να το καταλάβεις καλύτερα, τρέξε αυτό τον κώδικα σε όποια πλατφόρμα θέλεις:
Κώδικας: Επιλογή όλων

#include<stdio.h>

int main()
{
char x=' ';
int i;

for(i=0; x != '\n' && i<4; i++)
{
printf("Dwste enan xaraktira\n");
x = getchar();
putchar(x);
}

return 0;
}

Θα δεις πως μόλις δώσεις την 1η είσοδο, θα σου ζητήσει 2η αλλά αντί να περιμένει να τη δώσεις, θα προχωρήσει μόνο του και θα τερματίσει. Αυτό διότι του έχω πει να σταματάει το loop είτε όταν το i γίνει 4 είτε όταν το χ γίνει '\n'... στην περίπτωσή μας διαβάζει ως 2η είσοδο το '\n' από την 1η είσοδο (το ENTER που πατάς στο τέλος δηλαδή) και τερματίζει.