要時(shí)時(shí)確認(rèn)對(duì)設(shè)定的排列或變量的大小,以避免數(shù)據(jù)混亂或?qū)е孪到y(tǒng)出問題。請(qǐng)看下面使用者輸入數(shù)據(jù)的例子:
char city[10];
/* 為都市名稱的排列 */
printf("Enter a city name: ");
scanf("%s", city);
printf("City is %s", city);
在這里,都市名稱設(shè)定為10字(英文字)以內(nèi)。如果使用者輸入10字以上的都市名稱會(huì)怎么樣呢?可以說程序失敗或覆蓋Buffer里面的數(shù)據(jù)。不管怎樣,不要做冒險(xiǎn)的事,你要檢查文字的長(zhǎng)度:
char city[10];
/*為都市名稱的排列*/
printf("Enter a city name: ");
fgets(city, sizeof(city), stdin);
printf("City is %s", city);
上面已修改的程序是:如果使用者輸入10字以上的都市名,只接受Buffer能接受的長(zhǎng)度為止,其外的會(huì)不接受。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注