C 언어 파일 작업 분석
파일 작업에는 열기 작업과 읽기 및 쓰기 작업 외에도 몇 가지 일반적인 작업이 있습니다. 이러한 작업과 관련된 기능은 아래에 소개되어 있습니다.
1. 위치 포인터를 이동하는 함수
rewind 함수와 fseek 함수, 이 두 함수의 프로토타입은 다음과 같습니다.
void rewind(FILE *fp); 위치 포인터 파일의 시작 부분으로 이동
int fseek(FILE *fp,long int offset,int Origin); 위치 포인터를 원점으로부터의 오프셋 바이트 위치로 이동
그 중 fseek 함수의 매개변수에 대해서는 원점이 시작점이고, 오프셋이 원점으로부터의 오프셋 바이트 위치로 이동합니다
원점 SEEK_SET(0)->파일의 시작, SEEK_CUR(1)->현재 위치, SEEK_END(2)->파일의 끝의 세 가지 값이 있습니다.
참고: 1) 파일을 추가 모드로 열면 쓰기 시 이 두 기능이 작동하지 않습니다. 위치 포인터가 이동하더라도 추가된 데이터는 항상 파일 끝에 추가됩니다.
2. 기타 자주 사용하는 함수
1. ftell 함수
long int ftell(FILE *fp);
현재 위치 사이의 거리를 계산합니다. 포인터와 파일의 시작 바이트 수입니다. 오류가 발생하면 -1L이 반환됩니다.
ftell 함수를 사용하여 파일 크기를 계산하세요.
2.feof 함수
int feof(FILE *fp);
현재 위치 포인터가 파일의 끝에 도달했는지 여부를 감지합니다. 파일의 경우 0이 아닌 값을 반환하고, 그렇지 않으면 0을 반환합니다.
3.ferror 함수
int ferror(FILE *fp);
파일 작업 중 오류가 발생하는지 감지합니다. 오류가 발생하면 0이 아닌 값이 됩니다. 그렇지 않으면 0을 반환합니다.
4.remove function
int delete(const char *filename);
파일 삭제에 성공하면 반환합니다. 0, 그렇지 않으면 0이 아닌 값을 반환합니다
5.rename 함수
int rename(const char *oldname,const char *newname);
파일 이름을 바꿉니다. 이름 바꾸기에 성공하면 0을 반환하고, 그렇지 않으면 0이 아닌 값을 반환합니다.
6.freopen 함수
FILE* freopen(const char *filename, const char *mode,FILE *stream);
입출력을 구현합니다. 이 기능은 데이터를 테스트할 때 자주 사용됩니다.
7.fclose 함수
int fclose(FILE *stream);
성공하면 0을 반환하고 그렇지 않으면 -1을 반환합니다. pair 파일 작업이 완료된 후 스트림을 닫아야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.
테스트 프로그램:
#include<stdio.h> #include<stdlib.h> int main(void) { freopen("input.txt","r",stdin); freopen("output.txt","w+",stdout); int i; int a[10]; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { printf("%d\n",a[i]); } return 0; }
input.txt가 이미 프로젝트 디렉터리에 있고 파일의 데이터가 1 2 -1 3 4 5 7이라고 가정합니다. 8 9 10. 실행 후에는 콘솔에 데이터를 입력할 필요가 없습니다. 프로그램은 결과를 콘솔에 직접 출력하지 않고 input.txt에서 직접 데이터를 읽은 다음 결과를 output.txt에 출력합니다.
읽어주셔서 감사합니다. 더 많은 관련 글을 보시려면 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!