私は約12万語のファイルを読んだので、速くやろうとしています。見た:
int x = setvbuf(fp, (char *)NULL, _IOFBF, BSZ);
assert( x == 0 && fp != NULL );
オプションですが、1秒以上(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);
ここから続行するにはどうすればよいですか?bufferは単語のリストを保持しており、それらの単語を使用してマルチマップを作成しているので、できるだけ早く単語を1つずつ取得したいと思います。
ありがとう!