读书人

对纯C不是很理解查了函数手册也不是

发布时间: 2012-09-10 22:20:13 作者: rapoo

对纯C不是很了解,查了函数手册也不是很懂这句代码...(sscanf函数)
#include<stdio.h>
#include<string.h>
int main(){
char *tmpStr = "ab.cdefg.hijkl,o,p.q.xyz";
char str[100];
int sum=0, n;
int len = strlen(tmpStr)-1;
while(sum < len){
sscanf(tmpStr+sum, "%[^.]%*c%n", str, &n);
//sscanf_s(tmpStr+sum, "%[^.]%*c%n", str, &n); //sscanf_s在VC不会被告警
sum+=n;
puts(str);
getchar();
}
return 0;
}


1、为什么tmpStr还要加上sum去步进呢?

2、%[^.]我知道中文意思是:不匹配.符号,剩下那些字母baidu了,也无法理解....

有人愿意解释整个代码么? 谢谢!!

[解决办法]
%[^.] 读取字符串直到.不含.
%*c 跳过一个字符,此处即跳过.
%n 返回此时读了几个字符到后面的变量中,此处为n
[解决办法]

探讨

%[^.] 读取字符串直到.不含.
%*c 跳过一个字符,此处即跳过.
%n 返回此时读了几个字符到后面的变量中,此处为n

读书人网 >C++

热点推荐