01: // uso di fgets() per evitare buffer overrun
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05: int main(int argc, char **argv){
06:
07: char mystring[11];
08:
09: printf("Inserisci una frase di massimo 10 caratteri: ");
10: scanf("%[^\n]", mystring);
11: printf("Hai inserito [%s]\n", mystring);
12:
13: getchar(); // remove the \n
14:
15: // la scanf() legge da tastiera fino al primo \n, non conosce la dimensione dell'array di destinazione
16: // quindi se l'utente inserisce piu' di 10 caratteri -> buffer overrun
17:
18: // grazie alla fgets() posso scrivere il codice precedente in modo che sia a prova di errore
19: printf("Inserisci una frase di massimo 10 caratteri: ");
20: fgets(mystring, 11, stdin);
21: printf("Hai inserito [%s]\n", mystring);
22:
23:
24: return 0;
25: }
26:
27:
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it