• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

텍스트 파일 접근에 관한 질문입니다.

21.12.21 17:24 작성 조회수 167

0

안녕하세요. 제가 텍스트 파일에 여러 실험을 해보다 의문점이 생겨 질문 드립니다.

6

Sector 7

4.6

전 해당 내용을 가진 텍스트 파일의 내용을 수정하기 위해서 해당 코드를 작성했습니다.

	FILE* file = fopen(filename, "r+");
	
	int num;
	fscanf(file, "%d%*c", &num);
	printf("%d\n", num);

	fseek(file, 0, SEEK_CUR);

	fwrite("JohnWick", 9, 1, file);

	fclose(file);

기존 내용의 삭제 없이 수정하기 위해 r+ 옵션을 사용하고 한번씩 파일에서 입, 출력을 실행했습니다. 해당 코드는 잘 작동했으나 fseek() 함수를 사용하지 않을시 에러가 발생했습니다.

제가 사용한 fseek(file, 0, SEEK_CUR); 은 file 포인터 위치를 현재 위치에 그대로 두는, 사실상 의미가 없는 과정인데 어째서 이런 결과가 나오는 것인지 알고 싶습니다. 답변 부탁드립니다.

답변 1

답변을 작성해보세요.

0

새로 넣은 코드로 인해 결과가 달라졌는데도 불구하고 '사실상 의미가 없는 과정'이라고 단언하실 수 있는 근거를 찾으셔야겠지요.

코드를 봤을 때 fscanf가 'CUR'(커서)를 옮기는 것은 아닐까라고 추측을 해볼 수 있을 것 같습니다.

KoKo님의 프로필

KoKo

질문자

2021.12.23

이유를 찾았습니다. 답변 감사드립니다.