2011-03-31 10 views
2

파일의 특정 위치에서 문자열을 삭제하려고합니다. thre는 그것을하는 기능인가? 함수를 통해 파일의 마지막 줄을 삭제할 수 있습니까?파일의 특정 위치에서 문자열 삭제

+1

어떤 종류의에 ArsenMkrt의 대답의

char buffer[N]; // N >= 1 int str_start_pos = starting position of the string to remove int str_end_pos = ending position of the string to remove int file_size = the size of the file in bytes int copy_to = str_start_pos int copy_from = str_end_pos + 1 while(copy_from < file_size){ set_file_pos(file, copy_from) int bytes_read = read(buffer, N, file) copy_from += bytes_read set_file_pos(file, copy_to) write(buffer, file, bytes_read) copy_to += bytes_read } truncate_file(file,file_size - (str_end_pos - str_start_pos + 1)) 

뭔가를 옵션 2를 구현하는 방법에 대한 의사 다있어? 당신이 지정해야합니다. –

+1

숙제로 들리는 소리 –

+0

나는 학생이 아니다 – Shweta

답변

1

당신이 두 개의 옵션

  1. 당신이 필요로 제거하고 파일이 큰 경우 다시
  2. 그것을 쓰기, 파일을 순차적으로 읽고, 지정된 부분을 제거하고, 그 앞으로 한 후 컨텐츠를 이동, 전체 파일을 읽으려면
+0

"앞으로 나아갈 내용"어떻게? – Shweta

+0

삭제 된 콘텐츠 후에 부분 다시 작성 –

2

아니요이 기능을 파일에서 직접 수행 할 수있는 기능이 없습니다.

파일 내용을 메모리에로드하고 거기에서 수정하고 파일에 다시 써야합니다.

1

나는 그래서 여기에, 모든 입출력 기능을 찾는 기분이 안 그 효과 문자열의

관련 문제