目前,我的代码就是这样:
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
更好。