我已经阅读了大约 120k 字的文件,所以我尝试快速完成。看过:
int x = setvbuf(fp, (char *)NULL, _IOFBF, BSZ);
assert( x == 0 && fp != NULL );
选项,但它需要超过一秒钟(1 mb 文件)所以现在我尝试了这种方法:
fopen_s (&pFile,DICT,"rb");
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file:
buffer = (char*) malloc (sizeof(char)*lSize);
// copy the file into the buffer:
result = fread (buffer,1,lSize,pFile);
我如何从这里继续?缓冲区包含一个单词列表,我想尽可能快地一个一个地获取它们,因为我用这些单词构建了一个多重映射。
谢谢你!