많은 양의 파일이 있는데 각 숫자는 공백으로 구분됩니다.파일에서 빠르게 위치 찾기
이러한 같은 : (124) 1212 5 654 74231 ...
어떻게 빨리이 파일의 N 번째 번호를 찾을 수 있습니까?
나는 그것이 바이트로 측정 있기 때문에 fseek()
이 작동하지 않을 수 있습니다 생각하고, 나는에 의해 N 번째 번호를 얻을 수 있습니다 :
int i;
for (i=0;i!=N-1;++i) fscanf(somefile,"%d",&variable);
을하지만보다 효율적인 몇 가지 방법이있을 수 있습니다 생각?
, 당신은 ftell은() 당신이 돌아 fseek의에 전달할 수있는 파일 포인터의 바이트 위치를 얻을 수 있습니다 그 위치가 거의 즉시. –
@MarcB 불행히도 방금 찾은 번호로 돌아갈 필요가 없습니다. 수십만 개의 다른 번호를 찾은 후에 되돌아 갈 수 있습니다. – goofy
파일에 저장된 숫자에 속성이 없으면 (예 : 모두 3 자리), 유일한 방법은 N 번째 정수에 도달 할 때까지 전체 파일을 읽는 것입니다. – mfontanini