பொதுவாக ஒரு சி நிரலை இயக்கும் பொழுது
வேரியபிளில் டேட்டாவை சேமிப்போம்.அதில் டேட்டாவை எழுதச் செய்வோம். அதை மாற்றி
அமைப்போம்.அவற்றை ரீட் செய்வோம்.ஆனால் நிரல் முடிந்தவுடன் அவை அழிந்து போய்
விடும். அதற்கு பதிலாக நிரந்தரமாக அந்த டேட்டாவை ஃபைலில் சேமிக்கலாம்.
எனவே ஃபைல்களை கையாளுதல் என்பது
கோடிங் மூலம் அவற்றை திறப்பது,எழுதுவது, வாசிப்பது,மூடுவது ஆகும்
ஃபைல்களை
கையாளுவதற்கான ஃபங்க்சன்கள்
சி மொழியில் ஃபைல்களை கையாளுவதற்கான
ஃபங்சன்கள் நிறைய உள்ளன அவையாவன
No.
|
Function
|
Description
|
1
|
fopen()
|
புதிதாக அல்லது ஏற்கனவே உள்ள ஃபைலை
திறப்பதற்கு
|
2
|
fprintf()
|
ஃபைலில் டேட்டாவை எழுதுவதற்கு
|
3
|
fscanf()
|
ஃபைலில் இருந்து டேட்டாவை
வாசிப்பதற்கு.
|
4
|
fputc()
|
ஒரு கேரக்டரை எழுதுவதற்கு
|
5
|
fgetc()
|
ஒரு கேரக்டரை வாசிப்பதற்கு
|
6
|
fclose()
|
ஃபைலை மூடுவதற்கு
|
7
|
fseek()
|
ஃபைலில் குறிப்பிட்ட இடத்தில்
கர்சரை இருத்துவதற்கு
|
8
|
fputw()
|
ஒரு ஃபைலில் இன்டிஜர் மதிப்பை
எழுதுவதற்கு
|
9
|
fgetw()
|
ஒரு ஃபைலில் இருந்து இன்டெஜர்
மதிப்பை வாசிப்பதற்கு
|
10
|
ftell()
|
கர்சர் எந்த இடத்தில் உள்ளது என்று
கூறுவதற்கு
|
11
|
rewind()
|
கர்சரை ஃபைலின் ஆரம்ப இடத்தில்
இருத்துவதற்கு
|
Opening
File: fopen()
fopen()ஃபங்சனானது ஒரு புதிதாக ஃபைலைஅல்லது ஏற்கனவே உள்ள ஃபைலை
திறப்பதற்கு பயன்படுகின்றது.
Syntax:
FILE *fopen( const char * filename, const char * mode );
ஒரு ஃபைலை
திறப்பதற்கு நிறைய mode உள்ளன அவையாவன.
|
|
mode
|
விளக்கம்
|
r
|
ஃபைலை வாசிப்பதற்கு
|
w
|
ஃபைலில் எழுதுவதற்கு
|
a
|
ஃபைலின் கடைசியில் சேர்த்துக் கொள்ளுவதற்கு
|
r+
|
வாசிப்பது,எழுதுவது இரண்டும்
|
w+
|
வாசிப்பது,எழுதுவது இரண்டும்
|
a+
|
வாசிப்பது,எழுதுவது இரண்டும்
|
rb
|
பைனரி ஃபைலை வாசிப்பதற்கு
|
wb
|
பைனரி ஃபைலில் எழுதுவதற்கு
|
ab
|
பைனரி ஃபைலின் கடைசியில் சேர்த்துக் கொள்ளுவதற்கு
|
rb+
|
பைனரி ஃபைலில் வாசிப்பது,எழுதுவது இரண்டும்
|
wb+
|
பைனரி ஃபைலில் வாசிப்பது,எழுதுவது இரண்டும்
|
ab+
|
பைனரி ஃபைலில் வாசிப்பது,எழுதுவது இரண்டும்
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ஃபைலை
மூடுதல்
:SYNTAX:
int fclose( FILE *fp );
C fprintf()மற்றும் fscanf()
fprintf() மூலம் எழுதுதல்
SYNTAX:
int fprintf(FILE *stream, const char *format [, argument, ...])
Example:
#include <stdio.h>
int
main(){
FILE *fp;
fp = fopen("sample.txt", "w");//opening file
fprintf(fp, "Hello world
by fprintf...\n");//writing data into file
fclose(fp);//closing file
return 0;
}
fscanf() மூலம் string ஒன்றை எழுதுதல்
Syntax:
- int fscanf(FILE *stream, const char *format [, argument, ...])
Example:
#include <stdio.h>
int
main(){
FILE *fp;
char str[255];//creating char array to store data of file
fp = fopen(“sample.txt", "r");
while(fscanf(fp, "%s", str)!=EOF){
printf("%s ", str );
}
fclose(fp);
return 0;
}
Output:
Hello
world by fprintf...
C
File உதாரணம்: ஒரு மாணவரின்
டேட்டா
#include <stdio.h>
int
main()
{
FILE *fptr;
int id;
char name[30];
int mark;
fptr = fopen("stu.txt", "w+");/* open for writing */
if (fptr == NULL)
{
printf("File does not exists \n");
return;
}
printf("Enter the id\n");
scanf("%d", &id);
fprintf(fptr, "Id= %d\n", id);
printf("Enter the name \n");
scanf("%s", name);
fprintf(fptr, "Name= %s\n", name);
printf("Enter the mark\n");
scanf("%d", &mark);
fprintf(fptr, "Mark= %d\\n", mark);
fclose(fptr);
return 0;
}
Output:
Enter
the id
1
Enter
the name
karthikeyan
Enter
the mark
75
இப்பொழுது நிரலில் தற்போதைய
ஃபோல்டரில் stu.txt என்று ஒரு ஃபைல் இருக்கும்.
Stu.txt
Id=
1
Name=
karthikeyan
Mark=75
C fputc()மற்றும்getc()
ஃபைலில்
ஒற்றை கேரக்டரை எழுதுதல்
Syntax:
- int fputc(int c, FILE *stream)
Example:
#include <stdio.h>
int
main(){
FILE *fp;
fp = fopen("file1.txt", "w");//opening file
fputc('c’,fp);//writing single character into file
fclose(fp);//closing file
return 0;
}
file1.txt
c
ஒற்றை ஒற்றை கேரக்டராக வாசித்தல்.
Syntax:
- int fgetc(FILE *stream)
Example:
#include<stdio.h>
int main(){
FILE *fp;
char c;
fp=fopen("myfile.txt","r");
while((c=fgetc(fp))!=EOF){
printf("%c",c);
}
fclose(fp);
return 0;
}
myfile.txt
example
text
C fputs()மற்றும் fgets()
இவை இரண்டும் ஒரு ஸ்ட்ரிங் ஒன்றை
ஃபைலில் எழுதுவதற்கோ அல்லது வாசிப்பதற்கோ பயன்படுகின்றது..
File
: fputs() function எழுதுதல்
Syntax:
int fputs(const char *s, FILE *stream)
Example:
#include<stdio.h>
int
main(){
FILE *fp;
fp=fopen("myfile2.txt","w");
fputs(“welcome
to c programming",fp);
fclose(fp);
return
0;
}
myfile2.txt
welcome to c programming
File
: fgets() function வாசித்தல்
Fgets()
மூலம் ஒவ்வொரு வரியாக ஃபைலில் இருந்து
வாசித்தல்
Syntax:
- char* fgets(char *s, int n, FILE *stream)
Example:
#include<stdio.h>
int main(){
FILE *fp;
char text[300];
fp=fopen("myfile2.txt","r");
printf("%s",fgets(text,200,fp));
fclose(fp);
return 0;
}
Output:
welcome to c programming
C fseek() function
இந்த ஃபங்சன் ஆனது கர்சரை குறிப்பிட்ட
இடத்தில் நிறுத்தி அங்கு எழுதுதல்
Syntax:
- int fseek(FILE *stream, long int offset, int whence)
Example:
#include <stdio.h>
void main(){
FILE *fp;
fp = fopen("myfile.txt","w+");
fputs("This is c
programming, fp);
fseek( fp, 7, SEEK_SET );
fputs("Muthu
karthikeyan", fp);
fclose(fp);
}
myfile.txt
This
is Muthu karthikeyan
C rewind() function
இந்த் ஃபங்சன் ஆனது கர்சரை ஃபைலின்
ஆரம்பத்தில் இருத்துவதற்கு பயன்படுகின்றது..
Syntax:
- void rewind(FILE *stream)
Example:
File: file.txt
- this is a simple text
File: rewind.c
#include<stdio.h>
int
main(){
FILE *fp;
char c;
fp=fopen("file.txt","r");
while((c=fgetc(fp))!=EOF){
printf("%c",c);
}
rewind(fp);//moves the file pointer at beginning of the file
while((c=fgetc(fp))!=EOF){
printf("%c",c);
}
fclose(fp);
return 0;
}
Output:
this
is a simple textthis is a simple text
மேலே உள்ள நிரலில் முதல் லூப்
முதிந்தவுடன் கர்சர் ஆனது ஃபைலின் கடைசியில் இருக்கும். அதை மீண்டும் ஃபைலின்
ஆரம்பத்தில் இருத்துவதற்கு rewind() ஃபங்சன் பயன்படுகின்றது
ftell() function
கர்சரானது ஃபைலின் எந்த இடத்தில்
உள்ளது என்று அறிவதற்கு இந்த ஃபங்சன் பயன்படுகின்றது.
Syntax:
- long int ftell(FILE *stream)
Example:
File: ftell.c
#include <stdio.h>
int main (){
FILE *fp;
int length;
fp = fopen("file.txt", "r");
fseek(fp, 0, SEEK_END);
length = ftell(fp);
fclose(fp);
printf("Size of file: %d bytes", length);
return
0;
}
Output:
Size
of file: 21 bytes
மேலே உள்ள நிரலில் முதலில் கர்சரானது ஃபைலின் கடைசியில் இருத்தப்படுகின்றது.அதன்
பிறகு அதன் இண்டெக்ஸ் பொசிசன் மூலம் அந்த ஃபைலின் நீளம் அறியப்படுகின்றது.
-முத்து கார்த்திகேயன்,மதுரை