다른 파일 (UNSORTED.txt)의 모든 내용을 복사 한 후 처음으로 사용을 종료 한 후 SORTED.txt 파일을 다시 열고 읽는 중입니다. UNSORTED.txt에서 복사 한 후 복사 한 행 수를 계산하려고했습니다 (복사 프로세스가 아닌 별도의 프로세스로 계산). fegtc()는 파일의 시작 부분 (SORTED.txt)을 두 번째로 가리 키지 않으므로 줄의 값은 0으로 초기화됩니다. 또한 일반적으로 repointing을 얻을 수 있습니까? 파일을 닫지 않고 다시 열지 않고 fgetc()를 수행 했습니까?캔트가 파일을 두 번 읽는 fgetc를 사용하는 것 같습니다.
도움에 감사드립니다.
건배!
f = fopen("./TEXTFILES/UNSORTED.txt", "w");
if (f == NULL){
printf("ERROR opening file\n");
return 100;
}
for (i=0; i<1000000; i++){
fprintf(f, "%d\n", (23*rand()-rand()/13));
}
fclose(f);
f = fopen("./TEXTFILES/UNSORTED.txt", "r");
if (f == NULL){
return 100;
}
s = fopen("./TEXTFILES/SORTED.txt", "w");
if (s == NULL){
return 101;
}
while(1){
j = getc(f);
if (j == EOF) break;
fputc(j, s);
}
fclose(f);
//Closed source file. Read number of lines in target file.
fclose(s);
s = fopen("./TEXTFILES/SORTED.txt", "w");
j = 0;
while(1){
j = fgetc(s);
if (j == EOF) break;
if (j == '\n') lines++;
}
fclose(s);
printf("\n%d\n", lines);
'j'는 어떻게 선언됩니까? – cnicutar
j는 int로 선언됩니다 – ceod
파일의 시작 부분으로 돌아가려면'되감기 (들)'를 사용하십시오. [참조 링크] (http://www.cplusplus.com/reference/clibrary/cstdio/rewind/) – rkyser