如何分别存储括号和数字?

时间:2013-09-09 12:23:01

标签: c scanf

我正在尝试将字符串解码为其内容,但程序输出不是预期的。 输出是:

-858993623 444 333

什么是-858993623?

#include <stdio.h>

int main(void){

int areaCode;
long phoneNumber1;  
long phoneNumber2;
char bracket1, bracket2, chard;

char tel[]="(555) 444-333";

sscanf(tel, "%c%d%c %ld%c%ld", &bracket1, &bracket2,  &areaCode, &phoneNumber1, &chard, &phoneNumber2 );

printf("%d %ld %ld", areaCode, phoneNumber1, phoneNumber2);

getch();

}

1 个答案:

答案 0 :(得分:2)

目前你在UB的土地上:尝试&bracket1, &areaCode, &bracket2而不是&bracket1, &bracket2, &areaCode。其他一切看起来都不错。