Δημοσιεύτηκε: 28 Ιούλ 2011, 15:59
από migf1
Δες τώρα τον ίδιο κώδικα με χρήση της 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;
}