要時時確認對設定的排列或變量的大小,以避免數據混亂或導致系統出問題。請看下面使用者輸入數據的例子:
char city[10];
/* 為都市名稱的排列 */
printf("Enter a city name: ");
scanf("%s", city);
printf("City is %s", city);
在這里,都市名稱設定為10字(英文字)以內。如果使用者輸入10字以上的都市名稱會怎么樣呢?可以說程序失敗或覆蓋Buffer里面的數據。不管怎樣,不要做冒險的事,你要檢查文字的長度:
char city[10];
/*為都市名稱的排列*/
printf("Enter a city name: ");
fgets(city, sizeof(city), stdin);
printf("City is %s", city);
上面已修改的程序是:如果使用者輸入10字以上的都市名,只接受Buffer能接受的長度為止,其外的會不接受。
新聞熱點
疑難解答
圖片精選