从字符串中提取数据,使用sscanf一直不对。。。

qq_33576705 2017-03-16 11:19:14
代码如下,之前没用过这个提取子串的函数,刚学,照着网上的写法来写的,结果不对,谁帮忙看看,谢谢。。


printf("devDetail->DevicePath: %s \n",devDetail->DevicePath);
//结果 ==》 \\?\hid#vid_0483&pid_5750#7&2a6489c3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

int vid,pid,num,addr,index,id;
sscanf(devDetail->DevicePath,"%*[^#]#vid_%x&pid_%x#%d#%x&%d%&%d#%s",vid,pid,num,addr,index,id);
printf(" vid = %x,pid = %x,num = %d,addr = %x,index = %d,id = %d \n",vid,pid,num,addr,index,id);
...全文
322 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33576705 2017-03-17
  • 打赏
  • 举报
回复
引用 1 楼 piaobotudou 的回复:
sscanf(path,"%*[^#]#vid_%x&pid_%x#%d&%x&%d&%d#%s", &vid,&pid,&num,&addr,&index,&id, guidstring);
谢了 明白了
qq_33576705 2017-03-17
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
仅供参考:
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
谢谢,急躁的百度,理解错了,需要传地址
微型蚂蚁 2017-03-16
  • 打赏
  • 举报
回复
sscanf(path,"%*[^#]#vid_%x&pid_%x#%d&%x&%d&%d#%s", &vid,&pid,&num,&addr,&index,&id, guidstring);
赵4老师 2017-03-16
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%d%n",&v,&n);
        printf("k,v,n=%d,%d,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧