#include <math.h>
#include <stdio.h>
#include <stdlib.h>
char *tokenstring = "first,25.5,second,15";
int result, i;
double fp;
char o[10], f[10], s[10], t[10];
void main()
{
result = sscanf(tokenstring, "%[^','],%[^','],%[^','],%s", o, s, t, f);
printf("%s\n %s\n %s\n %s\n", o, s, t, f);
fp = atof(s);
i = atoi(f);
printf("%s\n %lf\n %s\n %d\n", o, fp, t, i);
}
上面的代碼不適用於'\ t',爲什麼?它的工作原理爲this 我使用VC6.0sscanf字符串格式說明符不適用於' t'
不工作
char *tokenstring = "first\t25.5\tsecond\t15";
result = sscanf(tokenstring, "%[^'\t'],%[^'\t'],%[^'\t'],%s", o, s, t, f);
首先,不要將單個字符括在引號中。空格的格式應該是''%[^ \ r \ n \ t]'' –
''%[^'\ t'],%[^'\ t']%s,%[^'\ t'],%s「' - >''%[^ \ t]%[^ \ t]%[^ \ t]%s」' – BLUEPIXY
另外,你有一個''%s「'在那裏。 –