小C不等于小三 发表于 2018-1-11 21:30:29

sscanf疑问

Int main{int iRet = 0char sBuf[] = "a|b|c|d";char sbuf1; char sbuf2char sbuf3;char sbuf4; memset(sbuf1, 0, sizeof(sbufl)); memset(sbuf2, 0, sizeof(sbuf2));memset(sbuf3, 0, sizeof(sbuf3));memset(sbuf4, 0, sizeof(sbuf4));
iRet = sscanf(sBuf,"%[^|]|%[^|]|%[^|]|%[^|]|", sbuf1, sbuf2, sbuf3, sbuf4);
return 0;}
结果:当sBuf为a|b|c|d|时,iRet = 4,sbuf1 = , sbuf2 = , sbuf3 = , sbuf4 = ;
而当sBuf为a||c|d|时,iRet = 4,sbuf1 = , sbuf2 = [], sbuf3 = [], sbuf4 = [];
能否可以对sscanf的输出格式进行优化,用以解决这种情况?

小C不等于小三 发表于 2018-1-11 21:35:39

而当sBuf为a||c|d|时,iRet=1

手误{:5_96:}
页: [1]
查看完整版本: sscanf疑问