如何推进sscanf C?

时间:2015-09-20 19:38:02

标签: c pointers scanf

我给了一个char *参数。这基本上是一个由“hex-address new_val”组成的输入流,我需要将这两个值读作int *。我正在使用sscanf()和读取十六进制地址就好了,但我无法弄清楚如何推进阅读new_val。不管我尝试了什么 - 我得到了段错误。以下是我到目前为止的情况:

 int set_new_val(Cmd *cp, char *arguments) {

  int* addr;

  int* val;

  sscanf(arguments, "%x",&addr);

  sscanf(arguments+?????, "%x",&val);

  /*see if I read it correct*/

  printf("adr = %x || val = %x\n",(unsigned int)*addr,(unsigned int)*val);

  /*not finished*/

  return 0;
}

1 个答案:

答案 0 :(得分:1)

int addr,val; //不是int *

sscanf(参数,"%x%x",& addr,& val);

printf(" adr =%x || val =%x \ n",addr,val);