一、sscanf示例
/* The following sample illustrates the use of brackets and the
caret (^) with sscanf().
Compile options needed: none
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
char *tokenstring = "first,25.5,second,15";
int result, i, rv;
double fp;
char o[10], f[10], s[10], t[10];
void main()
{
result = sscanf(tokenstring, "%[^','],%[^','],%[^','],%s", o, s, t, f);
fp = atof(s);
i = atoi(f);
printf("%s/n %lf/n %s/n %d/n", o, fp, t, i);
}
二、fscanf示例
/* The following sample illustrates the use of brackets and the
caret (^) with sscanf().
Compile options needed: none
*/
#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];
FILE *filep; //文件的打开、关闭操作在此省略
void main()
{
rv = fscanf(filep, "%s", tokenstring);
result = sscanf(tokenstring, "%[^','],%[^','],%[^','],%s", o, s, t, f);
fp = atof(s);
i = atoi(f);
printf("%s/n %lf/n %s/n %d/n", o, fp, t, i);
}
如果你直接使用fscanf读取文件中存放的字符串"first,25.5,second,15",
即fscanf(fp, "%[^','],%[^','],%[^','],%s", o, s, t, f);
结果会失败,原因我还没有调查出来。
你必须先把文件中存放的字符串读入tokenstring中,将文件操作转化为内存操作,才能解析成功。
如何使用逗号 (,) 作为分隔符 sscanf示例和fscanf示例
最新推荐文章于 2024-02-01 10:41:12 发布