作者dozer (rezod)
看板LinuxDev
標題Re: [問題]請問scanf
時間Wed May 7 18:40:46 2008
※ 引述《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