نمونه مثال برای فایل در برنامه نویسی C
در اینجا چند مثال برای مدیریت عملیات ورودی/ خروجی فایل در برنامه نویسی C آورده شده است. برای درک این برنامه ها باید با مفاهیم زیر در زبان C آشنا باشید:
- آرایه ها
- اشاره گرها
- رابطه آرایه و اشاره گر
- فایل ورودی/ خروجی
۱- برنامه ای به زبان 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(“C:\student.txt”, “w”));
if(fptr == NULL)
{
printf(“Error!”);
exit(1);
}
for(i = 0; i < num; ++i)
{
printf(“For student%dnEnter 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;
}
۲- برنامه ای به زبان 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(“C:\student.txt”, “a”));
if(fptr == NULL)
{
printf(“Error!”);
exit(1);
}
for(i = 0; i < num; ++i)
{
printf(“For student%dnEnter 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;
}
۳- برنامه ای به زبان C برای نوشتن عناصر یک آرایه از نوع ساختار در فایل با استفاده از fwrite(). آرایه را از فایل می خواند و روی صفحه نمایش می دهد.
#include <stdio.h>
struct student
{
char name[50];
int height;
};
int main(){
struct student stud1[5], stud2[5];
FILE *fptr;
int i;
fptr = fopen(“file.txt”,”wb”);
for(i = 0; i < 5; ++i)
{
fflush(stdin);
printf(“Enter name: “);
gets(stud1[i].name);
printf(“Enter height: “);
scanf(“%d”, &stud1[i].height);
}
fwrite(stud1, sizeof(stud1), 1, fptr);
fclose(fptr);
fptr = fopen(“file.txt”, “rb”);
fread(stud2, sizeof(stud2), 1, fptr);
for(i = 0; i < 5; ++i)
{
printf(“Name: %snHeight: %d”, stud2[i].name, stud2[i].height);
}
fclose(fptr);
return 0;
}