我想在陣列,以改變數據SCANF無符號的字符,這是我的代碼部分:十六進制
u_char paket[100];
//here i put some data into array and then trying to change it by user
scanf("%hhx.%hhx.%hhx.%hhx.%hhx.%hhx", &paket[0], &paket[1], &paket[2], &paket[3], &paket[4], &paket[5]);
當我輸入的是例如88.88.88.88.88.88
它設置paket[0] - paket[5]
到88,但它也改變paket[6],
paket[7]
和paket[8]
設置爲0.
怎麼可能以及如何修復它?我只需要改變[0] - [5]
你'u_char'數組的聲明可能會初始化所有元素0.一些研究員的答案是刪除它一分鐘前的答案或許是對的:你可能在一個Big-endian系統的每個格式標識符上掃描int aka 4個字節/字符。 – collapsar 2013-04-22 07:44:18
啊,我的錯,我沒有發佈整個代碼。在第一行和第二行之間,我將數據加載到該數組中。所以在scanf之前,這些元素沒有設置爲0,問題在於scanf。 – user2306381 2013-04-22 07:47:39