대학 운영 체제 과정에서 파일 시스템에 대한 프로젝트를하고 있는데 C 프로그램은 사람이 읽을 수있는 파일로 간단한 파일 시스템을 시뮬레이트해야하므로 파일은 행, 행 "부문"이 될 것입니다. 나는 줄을 덮어 쓰는 길이가 같아야한다는 것을 배웠다. 그래서 줄 끝까지 ASCII 0으로 채우고 나중에 채울 수있는 아스키 0 줄을 일정량 남겨 둘 것이다.C 파일의 행 덮어 쓰기
이제는 원하는대로 작동하는지 테스트 프로그램을 만들고 있습니다. 내 코드의 중요한 부분은 다음과 같습니다.
file = fopen("irasproba_tesztfajl.txt", "r+"); //it is previously loaded with 10 copies of the line I'll print later in reverse order
/* this finds the 3rd line */
int count = 0; //how much have we gone yet?
char c;
while(count != 2) {
if((c = fgetc(file)) == '\n') count++;
}
fflush(file);
fprintf(file, "- . , M N B V C X Y Í Ű Á É L K J H G F D S A Ú Ő P O I U Z T R E W Q Ó Ü Ö 9 8 7 6 5 4 3 2 1 0\n");
fflush(file);
fclose(file);
이제 파일은 그대로 유지됩니다. 무엇이 문제 일 수 있습니까?
감사합니다. 파일이 "+" 옵션을 열면 here에서
파일이 어떤 모양인지 보여주는 샘플이 도움이 될 수 있습니까? – FrustratedWithFormsDesigner
여기에서 오류를 검사하지 않습니다. 파일이 실제로 성공적으로 열렸습니까? –
줄이 고정 길이이면 각 문자를 읽는 대신 fseek()를 사용하여 섹터로 건너 뛸 수 있어야합니다. - fseek (파일, (bytes_per_line + 1) * line_number, SEEK_SET); – torak