我可以在一次sscanf调用中读取整个char *吗?

时间:2016-09-23 10:31:36

标签: c++ file-io scanf

我尝试通过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;
}

有没有办法一次扫描所有值?

我知道数组的长度,但它没有修复(取决于我尝试阅读的文件)。

谢谢!

0 个答案:

没有答案