看板 LinuxDev 關於我們 聯絡資訊
※ 引述《markchen ()》之銘言: : ※ [本文轉錄自 C_and_CPP 看板] : 作者: markchen () 看板: C_and_CPP : 標題: [問題]請問scanf : 時間: Wed May 7 10:09:28 2008 : 我想輸入三筆16進制的值 分別存到char a,b,c裏去 : ex 55 4e 24 <--如果用scanf的話 : 我用scanf("%x %x %x",&a &b &c); : 會有問題... : char ch[10] : 如果我用scanf("%s",ch); : 那我輸入的 55 4e 24又會被當作一般字元處理 而不是我原本的16進制的值... : 不知道該用什麼方法寫會比較簡潔 #include <stdio.h> #include <stdlib.h> int main(void) { char blah[BUFSIZ] = ""; char blah2[BUFSIZ] = ""; char blah3[BUFSIZ] = ""; scanf("%[0-9a-f] %[0-9a-f] %[0-9a-f]", blah, blah2, blah3); printf("blah=%s\n", blah); printf("blah2=%s\n", blah2); printf("blah3=%s\n", blah3); return 0; } =================================================================== $ ./a.out 55 4e ff blah=55 blah2=4e blah3=ff -- Westheimer's Discovery: A couple of months in the laboratory can frequently save a couple of hours in the library. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.176.4 ※ 編輯: dozer 來自: 140.109.176.4 (05/07 18:41)
markchen:不好意思 最後的55 4e ff是字元值嗎 還是hex? 05/07 19:06
markchen:好像是char值 再續求轉成hex的格式 05/07 19:09
Neo1978:man strtol or strtoul 05/07 22:17
markchen:謝了 ok了 感激不儘 05/07 23:49
markchen:不過 再請教一下 0-9a-f 是概念是..? 05/07 23:58
dozer:regular expression 05/08 00:00