sscanf函数的应用

来源:互联网 发布:无极传奇数据库编辑器 编辑:程序博客网 时间:2024/06/08 05:54
int main( void ){        int num;        int num1;        char buf[20] = {0};        strncpy( buf,"123=456",sizeof(buf) );        int ret = sscanf(buf,"%d=%d",&num,&num1);        printf("ret = %d\n",ret);        printf("%d\n",num);        printf("%d\n",num1);        return 0;}结果正确 可以得到想要的结果ret = 2num = 123num1 = 456buf 中的= 是分割符的作用int main( void ){        char buf[20] = {0};        strncpy( buf, "xxx=yyyy",sizeof(buf) );        char val[10] = {0};        char val1[10] = {0};        int ret = sscanf(buf,"%s=%s",val,val1);        printf("ret = %d\n",ret);        printf("%s\n",val);        printf("%s\n",val1);}结果出现问题因为这个的= 是buf 内容的一部分 改正: int ret = sscanf(buf,"%[^=]=%s",val,val1);就可以得到结果
0 0