Δημοσιεύτηκε: 28 Ιούλ 2011, 15:59
Δες τώρα τον ίδιο κώδικα με χρήση της s_get() ... θα δουλέψει μια χαρά (σε οποιαδήποτε πλατφόρμα και χωρίς ανάγκη για fflush(stdin) )...
- Κώδικας: Επιλογή όλων
#include<stdio.h>
#define MAXINBUF (255+1)
// ------------------------------------------------------------------------------
char *s_get(char *s, size_t len)
{
char *cp;
for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character
return s;
}
// ------------------------------------------------------------------------------
int main()
{
char inbuf[ MAXINBUF ] = "";
char x = ' ';
int i;
for(i=0; x != '\n' && i<4; i++)
{
printf("\nDwste enan xaraktira\n");
s_get(inbuf, MAXINBUF);
x = *inbuf;
putchar(x);
}
return 0;
}