Re: [問題]請問scanf

看板LinuxDev作者 (rezod)時間17年前 (2008/05/07 18:40), 編輯推噓5(501)
留言6則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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)

05/07 19:06, , 1F
不好意思 最後的55 4e ff是字元值嗎 還是hex?
05/07 19:06, 1F

05/07 19:09, , 2F
好像是char值 再續求轉成hex的格式
05/07 19:09, 2F

05/07 22:17, , 3F
man strtol or strtoul
05/07 22:17, 3F

05/07 23:49, , 4F
謝了 ok了 感激不儘
05/07 23:49, 4F

05/07 23:58, , 5F
不過 再請教一下 0-9a-f 是概念是..?
05/07 23:58, 5F

05/08 00:00, , 6F
regular expression
05/08 00:00, 6F
文章代碼(AID): #188OSnL1 (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
5
6
文章代碼(AID): #188OSnL1 (LinuxDev)