我尝试通过sscanf解析一个大的char *来加倍值。
当我循环抛出线条(4个双倍值)时,sscanf需要很多时间。
while(sscanf(buffer, "%lf %lf %lf %lf%n", &d1,&d2,&d3,&d4,&n))
{
... do some stuff with d1 ... d4
buffer += n;
}
但是,当我一次扫描4行时,它的速度快了近4倍:
while(sscanf(buffer, "%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf%n", &d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9,&d10,&d11,&d12,&d13,&d14,&d15,&d16,&n))
{
... do some stuff with d1 ... d16
buffer += n;
}
有没有办法一次扫描所有值?
我知道数组的长度,但它没有修复(取决于我尝试阅读的文件)。
谢谢!