fseek() فانکشنی دوز چالیشسا 0 میقداری قایتارار یوخسا -1 و شماتیک یازیسی دا بودور:
fseek ( file pointer , long integer offset , relative position );
یاخشی، file pointer بللیدیر، قاباقجا تانیش اولدوغوموز فایل ایشارهچیسیدیر.
سونرا long int offset وار و بو دا نئچه سایی کاراکتر اوچون آخیم یئرین داشینماسیدیر. منفی سول أله آپاریر و موثبت ایسه ساغا.
rel position ایسه هانکی نوقطهیه نیسبت داشینما یئری بللی ائدیر.
بو آچارین دا ۳ حالتی وار:
آشاغیداکی اؤرنکلره باخین:
|
(فایلین باشلانما یئریندن ۳ کاراکتر قاباغا (ساغ أله) گئدیر) |
|
(ایندیکی یئردن ۷ کاراکتر داها قاباغا گئدیر) |
|
(فایلین آخیریندن ۴ کاراکتر دالیا قاییدیر) |
بیر پروقرام میثالی ایله داها آیدین گؤسترهجهییک.
آشاغیداکی پروقرامی ایزلهیین:
#include <stdio.h>
int main()
{
char name[32]="";
FILE *fp;
fp = fopen("file.txt", "w+");
fprintf(fp,"%s","ali shir nevayi!");
fseek(fp,8,SEEK_SET);
fscanf(fp,"%s",name);
printf("%s",name);
fclose(fp);
return 0;
}
بوراخیش صفحهسی:
Output Terminal
nevayi!
Process returned 0 (0x0) execution time : 0.004 s
Press ENTER to continue.
۴-جو سطرده name آدی ایله و ۳۲ کاراکتر اوزونلوقدا بیر دوزن تعریف ائتمیشیک. داها دوغروسو بیر ایسترینگ.
۵-جی سطرده fp فایل ایشارهچیسی. ۶-جی سطرده file.txt یاراداندان سونرا، ۷-جی سطرده فایلین ایچینه ali shir nevayi! ایسترینگی یازیلیب.
سونرا ۸-جی سطرده، فایلین باشیندان ۸ کاراکتری ساییلیب و ۸-جی کاراکتردن سونرا fscanf() فانکشنی ایله ۱ ساییدا ایسترینگ اوخونوب.
| a | l | i | s | h | i | r | n | e | v | a | y | i | EOF | ||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |||||||||||||||||
شوماره 0 فایلین باشیدیر. ۸ کاراکتر اوخونسا، r حرفی اولور و مبدا، r حرفین سونو نظرده آلینیر.
بونا گؤره ده ۹-جو سطرین اوخودوغو ایسترینگ، nevayi! کلمهسی اولور.
بورادان اویانا بیر کاراکتر ده اوخونسا، فایلین آخیری أله گلهجک. یعنی EOF
بو مسئلهیی گؤسترمک اوچون، اوستدهکی پروقرامی بیراز دگیشیریک و یئنیدن یازیریق:
#include <stdio.h>
int main()
{
char ch1,name[32]="";
FILE *fp;
fp = fopen("file.txt", "w+");
fprintf(fp,"%s","ali shir nevayi!");
fseek(fp,8,SEEK_SET);
fscanf(fp,"%s",name);
printf("%s\n",name);
ch1 = fgetc(fp);
printf("%c",ch1);
fclose(fp);
return 0;
}
بوراخیش دا بئله گؤرونهجکدیر:
Output Terminal
nevayi!
�
Process returned 0 (0x0) execution time : 0.005 s
Press ENTER to continue.
بوراخیشداکی گؤردوگونوز � کاراکتری، ائله وورغولادیغیمیز EOF تانینیر. یعنی فایلین آخیری!