确认Buffer
要时时确认对设定的排列或变量的大小,以避免数据混乱或导致系统出问题。请看下面使用者输入数据的例子: char city[10]; /* 为都市名称的排列 */ printf("Enter a city name: "); scanf("%s", city); printf("City is %s\n", city); 在这里,都市名称设定为10字(英文字)以内。如果使用者输入10字以上的都市名称会怎么样呢?可以说程序失败或覆盖Buffer里面的数据。不管怎样,不要做冒险的事,你要检查文字的长度: char city[10]; /*为都市名称的排列*/ printf("Enter a city name: "); fgets(city, sizeof(city), stdin); printf("City is %s\n", city); 上面已修改的程序是:如果使用者输入10字以上的都市名,只接受Buffer能接受的长度为止,其外的会不接受。 
|