• Giga@hdv-tech.com
  • 24시간 온라인 서비스:
    • 7189078c
    • sns03
    • 6660e33e
    • 유튜브 拷贝
    • 인스 타 그램

    C, 문서 읽기 및 쓰기

    게시 시간: 2023년 8월 11일

    C 프로그래머가 텍스트 파일 또는 이진 파일을 만들고 열고 닫는 방법을 설명합니다.

    파일은 텍스트 파일이든 바이너리 파일이든 일련의 바이트를 의미합니다. C 언어는 최상위 기능에 대한 액세스를 제공할 뿐만 아니라 저장 장치의 파일을 처리하기 위한 기본(OS) 호출을 제공합니다. .이 장에서는 문서 관리의 중요한 호출에 대해 설명합니다.

    열린 파일

    일반적으로 fopen() 함수를 사용하여 새 파일을 만들거나 기존 파일을 여는 이 호출은 흐름을 제어하는 ​​데 필요한 모든 정보를 포함하는 FILE 유형의 개체를 초기화합니다.다음은 이 함수 호출의 프로토타입입니다.

    FILE *fopen ( const char * 파일명 , const char * 모드 );

    여기서 filename은 파일 이름을 지정하는 문자열이며 액세스 모드의 값은 다음 값 중 하나일 수 있습니다.

    무늬

    설명

    r

    읽을 수 있는 기존 텍스트 파일을 엽니다.

    w

    파일 쓰기를 허용하는 텍스트 파일을 엽니다.파일이 없으면 새 파일이 생성됩니다.여기에서 프로그램은 파일의 처음부터 내용을 작성합니다.파일이 존재하면 길이가 0으로 잘리고 다시 작성됩니다.

    a

    텍스트 파일을 열고 추가 모드에서 파일에 씁니다.파일이 없으면 새 파일이 생성됩니다.여기에서 프로그램은 이미 가지고 있는 파일에 콘텐츠를 추가합니다.

    r+

    파일을 읽고 쓸 수 있는 텍스트 파일을 엽니다.

    w+

    파일을 읽고 쓸 수 있는 텍스트 파일을 엽니다.파일이 이미 있으면 파일 길이가 0으로 잘리고 파일이 없으면 새 파일이 만들어집니다.

    a+

    파일을 읽고 쓸 수 있는 텍스트 파일을 엽니다.파일이 없으면 새 파일이 생성됩니다.읽기는 파일의 처음부터 시작하고 쓰기는 추가 모드에서만 가능합니다.

    바이너리 파일을 처리하는 경우 다음 액세스 모드를 사용하여 위를 대체합니다.

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    닫힌 파일

    파일을 닫으려면 fclose() 함수를 사용하십시오.함수의 프로토타입은 다음과 같습니다.

    int fclose (파일 *fp);

    • 파일이 성공적으로 닫히면 fclose() 함수는 0을 반환하고 오류가 발생하면 EOF를 반환합니다.실제로 이 함수는 버퍼에서 데이터를 제거하고 파일을 닫은 다음 해당 파일에 사용된 모든 메모리를 해제합니다.EOF는 헤더 파일 stdio.h에 정의된 상수입니다.

    C 표준 라이브러리는 파일을 문자 또는 고정 길이 문자열로 읽고 쓰는 다양한 기능을 제공합니다.

    파일에 쓰기

    스트림에 문자를 쓰는 가장 간단한 함수는 다음과 같습니다.

    int fputc ( int c , FILE *fp );

    함수 fputc()는 매개변수 c의 문자 값을 fp가 가리키는 출력 스트림에 기록합니다.쓰기에 성공하면 쓴 문자를 반환하고 오류가 발생하면 EOF를 반환합니다.다음 함수를 사용하여 null로 끝나는 문자열을 스트림에 쓸 수 있습니다.

    int fputs ( const char *s , FILE *fp );

    함수 fputs()는 문자열 s를 fp가 가리키는 출력 스트림에 기록합니다.쓰기가 성공하면 음수가 아닌 값을 반환하고 오류가 발생하면 EOF를 반환합니다.int fprintf(FILE * fp, const char * format,...) 함수를 사용하여 파일에 문자열을 쓸 수도 있습니다.다음 예를 시도해 보십시오.

    참고: 사용 가능한 tmp 디렉토리가 있는지 확인하고 존재하지 않는 경우 먼저 컴퓨터에 생성해야 합니다.

    / tmp는 일반적으로 Linux 시스템의 임시 디렉토리입니다.Windows 시스템에서 실행하는 경우 C:\tmp, D:\tmp 등과 같이 로컬 환경의 기존 디렉터리로 수정해야 합니다.

    살아있는 예

    #포함하다int main () { FILE *fp = NULL ;fp = fopen("/tmp/test.txt", "w+");fprintf (fp , "이것은 fprintf에 대한 테스트입니다...\n ");fputs ("이것은 fputs에 대한 테스트입니다...\n ", fp );fclose(fp);}

    위의 코드를 컴파일하고 실행하면 /tmp 디렉토리에 test.txt라는 새로운 파일이 생성됩니다.그리고 두 가지 다른 기능을 사용하여 두 줄에 씁니다.다음에 이 파일을 읽어봅시다.

    파일 읽기

    다음은 파일에서 단일 문자를 읽는 가장 간단한 함수입니다.

    int fgetc( 파일 * fp );

    fgetc() 함수는 fp가 가리키는 입력 파일에서 문자를 읽습니다.반환 값은 읽은 문자이고 오류가 발생하면 EOF입니다.다음 함수를 사용하면 스트림에서 문자열을 읽을 수 있습니다.

    char *fgets( char *buf , int n , FILE *fp );

    함수 fgets()는 fp가 지시하는 입력 스트림에서 n-1개의 문자를 읽습니다.읽은 문자열을 버퍼 buf에 복사하고 끝에 null 문자를 추가하여 문자열을 종료합니다.

    이 함수가 마지막 문자를 읽기 전에 끊어진 줄 문자 '\ n' 또는 파일 끝의 EOF를 만나면 줄 바꿈을 포함하여 읽은 문자로만 반환됩니다.int fscanf (FILE * fp, const char * format,...) 함수를 사용하여 파일에서 문자열을 읽을 수도 있지만 첫 번째 공백 및 줄 바꿈을 만나면 읽기를 중지합니다.

    살아있는 예

    #포함하다int main () { FILE *fp = NULL ;숯 버프[255];fp = fopen("/tmp/test.txt", "r");fscanf(fp , "%s ", 버프 );printf("1: %s \n ", 버프 );fgets(버프 , 255, (FILE *)fp );printf("2: %s \n ", 버프 );fgets(버프 , 255, (FILE *)fp );printf("3: %s \n ", 버프 );fclose(fp);}

    위의 코드를 컴파일하고 실행하면 이전 섹션에서 만든 파일을 읽어서 다음과 같은 결과를 생성합니다.

    1: 이 2: fprintf 테스트 중...

    3: 이것은 fputs에 대한 테스트입니다...

    첫째, fscanf() 메서드는 뒤에 공백이 있기 때문에 This 만 읽습니다.둘째, 함수 fgets()를 호출하여 줄 끝까지 나머지 부분을 읽습니다.마지막으로 fgets()를 호출하여 두 번째 행을 완전히 읽습니다.

    바이너리 I/O 기능

    이진 입력 및 출력에는 다음 두 함수가 사용됩니다.

    size_t fread (void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);size_t fwrite(const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);

    두 기능 모두 스토리지 블록(일반적으로 배열 또는 구조)에 대해 읽고 씁니다.

    위의 C 파일 읽기 및 쓰기에 대한 내용은 소프트웨어 기술 운영인 HDV Phoelectron Technology Ltd.에 속합니다.그리고 회사는 네트워크 관련 장비(예: AC오누/ 의사소통오누/ 지능적인오누/섬유오누등) 강력한 소프트웨어 팀을 구성하여 모든 고객이 필요한 독점 요구 사항을 사용자 정의하고 제품을 더욱 지능적이고 고급화할 수 있도록 합니다.



    웹 하늘