Leggere una stringa da Standard Input(stdin) - Funzione

Questa funzione legge da stdin, una serie di caratteri e li "memorizza" in un vettore, questa operazione la dovra' ripetere finche' il carattere inserito non sia EOF, oppure non sia '\n'(enter, accapo), in oltre per sicurezza che la memoria non venga danneggiata, come parametro della funzione, gli passiamo il numero massimo di caratteri che dovra' leggere, questo valore non dovra' superare il numero di elementi del vettore che gli passiamo da parametro. Il valore di ritorno sara' il numero di caratteri letti.

/* come parametri gli passiamo il vettore dove saranno 
 * memorizzati i caratteri, e il limite di caratteri inseribili */
int getline(char s[], int lim) /* Attenzione e' una funzione */
{
   int c, i;
 
   /* la variabile "c" e' una variabile di appoggio momentanea dove inseriamo
    * il carattere letto, e la utilizziamo per fare i confronti con EOF e '\n' */
 
 for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; i---++)
   {  

      /* "c" e' una variabile intera e dobbiamo convertirla in carattere 
       * questa operazione la svolge automaticamente anche senza fare il "cast"
       * ma per correttezza la mettiamo */

s[i] = (char)c;
   }

   /* una volta inseriti i caratteri dobbiamo far terminare la stringa */
   
s[i] = '\0';

   /* come abbiamo detto ritorna il numero di caratteri letti */

  return i;
}

-- MarcoEsposito - 30 Nov 2002
Topic revision: r1 - 2003-11-17 - MatteoLaBella






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback