파일은 기록의 모음이거나 데이터가 영구적으로 저장되는 하드 디스크의 한 장소입니다.
파일 필요
-
프로그램이 종료되면 전체 데이터가 손실됩니다.
-
파일에 저장하면 프로그램이 종료되어도 데이터가 보존됩니다.
-
많은 양의 데이터를 입력할 경우 일반적으로 모두 입력하는 데 시간이 많이 걸립니다.
-
몇 가지 명령을 사용하여 파일 내용에 쉽게 액세스할 수 있습니다.
-
변경 없이 한 컴퓨터에서 다른 컴퓨터로 데이터를 쉽게 이동할 수 있습니다.
-
C 명령을 사용하여 다양한 방법으로 파일에 액세스할 수 있습니다.
파일 작업
C 프로그래밍 언어의 파일에 대한 작업은 다음과 같습니다. -
- 파일 이름 지정
- 파일 열기
- 파일에서 읽기
- 파일에 쓰기
- 파일 닫기
구문
파일 포인터 선언 구문 다음과 같습니다 -
FILE *File pointer;
예를 들어, 파일 * fptr;
파일 포인터 이름 지정 및 열기 구문 다음과 같습니다 -
File pointer = fopen ("File name", "mode");
예를 들어,
FILE *fp; fp = fopen ("sample.txt", "w");
프로그램1
다음은 n명의 학생의 이름과 점수를 읽어서 파일에 저장하는 C 프로그램입니다 -
#include <stdio.h> int main(){ char name[50]; int marks, i, num; printf("Enter number of students: "); scanf("%d", &num); FILE *fptr; fptr = (fopen("std.txt", "w")); // opening file in write mode if(fptr == NULL){ printf("Error!"); exit(1); } for(i = 0; i < num; ++i){ printf("For student%d\nEnter name: ", i+1); scanf("%s", name); printf("Enter marks: "); scanf("%d", &marks); fprintf(fptr,"\nName: %s \nMarks=%d \n", name, marks); } fclose(fptr); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
Enter number of students: 3 For student1 Enter name: lucky Enter marks: 59 For student2 Enter name: pinky Enter marks: 89 For student3 Enter name: bob Enter marks: 45
프로그램2
다음은 직원의 세부 정보를 파일에 저장하고 동일한 내용을 인쇄하는 C 프로그램입니다 -
#include<stdio.h> int main ( ){ FILE *fp; int eno; char ename[30]; float sal; fp =fopen ("emp.txt", "w"); // opening file in write mode printf ("enter the details of eno, ename, sal:"); scanf ("%d%s%f", &eno, ename, &sal); fprintf (fp, "%d%s%f", eno, ename, sal); fclose (fp); fp = fopen ("emp.txt", "r"); fscanf (fp, "%d%s%f", &eno, ename, &sal); printf ("employee no: = %d\n", eno); printf ("employee name = %s\n", ename); printf ("salary = %f\n", sal); fclose (fp); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
enter the details of eno, ename, sal:1 Pinky 34000 employee no: = 1 employee name = Pinky salary = 34000.000000