| getsn | Function* (tigcc.a)

stdio.h

char *getsn (char *string, unsigned long maxlen);

Gets a string from the keyboard avoiding buffer overflows.

getsn works like gets, but with a maximum length specified. The maximum length (`maxlen`) is the total size of the buffer. In other words, the null-terminator is included in the maximum length. When the buffer is full (i.e. when the string length is `maxlen - 1`), getsn will not accept any more characters. Only backspace or ENTER are allowed in that situation. Here is an example of usage:

    char buffer[50];
    int a, b;
    clrscr ();
    puts ("A = ");
    a = atoi (getsn (buffer, 50));
    puts ("B = ");
    b = atoi (getsn (buffer, 50));
    printf ("%d + %d = %d", a, b, a+b);

atoi is an ANSI C standard function from stdlib.h header file.
Note: getsn is not an ANSI C standard function, but the equivalent of `fgets (buffer, maxlen, stdin)` in ANSI C. It is needed because terminal streams are not implemented in TIGCCLIB.

Uses: fputchar, printf, EV_captureEvents, EV_defaultHandler, MoveTo, SaveScrState, ngetchx
Used by: scanf, vscanf

See also: gets, fgets, How can I get input from the keyboard?, textedit.h