作者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)
1F:推 markchen:不好意思 最後的55 4e ff是字元值吗 还是hex? 05/07 19:06
2F:推 markchen:好像是char值 再续求转成hex的格式 05/07 19:09
3F:推 Neo1978:man strtol or strtoul 05/07 22:17
4F:推 markchen:谢了 ok了 感激不尽 05/07 23:49
5F:推 markchen:不过 再请教一下 0-9a-f 是概念是..? 05/07 23:58
6F:→ dozer:regular expression 05/08 00:00