> 백엔드 개발 > C#.Net 튜토리얼 > C 언어 파일 연산 분석 상세 설명 및 예제 코드

C 언어 파일 연산 분석 상세 설명 및 예제 코드

黄舟
풀어 주다: 2016-12-14 17:25:14
원래의
1381명이 탐색했습니다.

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)를 주목해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿