目前,我的代码就是这样:

void ReadFile(double Cst[][1000], char* FileName, int height)

FILE* ifp;
double value;
int nRead = 0;
int mRead = 0;

//open the file, check if successful
ifp = fopen( FileName, "r" );
if (ifp==NULL){
    ...
}


for (nRead = 0; nRead < height; nRead++){
    for (mRead = 0; mRead < 1000; mRead++){
        fscanf(ifp, "%le",&value);
        Cst[nRead][mRead]=value;
    }
}

fclose(ifp);

我要改变什么才能使其最快?

最佳答案

atof可能要快得多,它不需要处理格式字符串。

如果您不需要支持所有1001可识别的输入格式(带或不带指数等),那么自定义功能可能会更快。如果atof仍然对您来说太慢,请说出来,这样我就可以清理所使用的代码(目前,它不适合公开发布)。

我只记得atof的问题-它不会告诉您数字的结尾,因此很难连续读取多个数字。在这方面,strtod更好。

07-27 13:29