C语言中的文件分为两大类: ‘5’ ‘6’ ‘7’ ‘8’
⑴文本文件;
⑵二进制文件。
例如:整数5678在文本文件中存储的全部为字符;在文本文件中将每个数字看成一个字符,在此5678被分为四个单元,每个单元为每个位数上的数字的ASCII码值,即:
上述整数的二进制文件存储形式为:
EOF:表示一个文件的结尾。
★一个文件的打开和关闭:
fopen:有两个参数,格式为 fopen(路径或名字,参数)
例如:myfile.c在c语言根目录中,会返回一个指针,假设定义了一个文件指针FILE *fp;
fp=fopen(”c:\\myfile.c”,”---”)
★对字符的操作:
fgetc:从文件中读出一个字符;
fputc:从文件中写入一个字符。
例如:fp=fopen(”c:\\myfile.c”,”rb”);
ch=fgetc(fp);
★fputc:有两个参数,把一个字符写入到文件中。
fputc(----,----)
例如:从键盘上输入一串字符,将其写入文件myfile.c中,之后将文件中内容输出在屏幕上给用户看。
void main()
{
FILE *fp;
char ch;
if ((fp=fopen(“myfile.c”,”r”))==NULL)
{
printf(“Can’t open the file and press any key to exit\n”);
getch();
exit();
}
printf(“\nPlease input the character:\n”);
ch=getch();
while (ch!=’\n’)
{
fputc(ch,fp);
ch=getch();
}
rewind(fp); //从文件中读完一个字符后,再将文件指针fp加1,继续读下一个字符。
ch=fpgetc(fp);
while (ch!=EOF)
{
putch(ch);
ch=fgetc(fp);
}
fclose(fp);
getch();
}
★对字符串的操作函数:
fputs和fgets
例如:fgets(str,n,fp) //将文件fp里n-1个字符读到str里去。
注意:fgets的函数返回值是返回str的首地址。
例如:假如要读文件中并没有n-1个字符,当读到第10个字符时遇到回车或者结束符时,仍然会返回str的首地址,最多也只可以返回一行数据。
fputs的格式为:
fputs(----,----); //将字符中内容读到fp里去
例如:从键盘上输入一串字符,将其写入文件myfile.c中,之后将文件中内容输出在屏幕上给用户看。(方法:利用字符串操作函数予以实现)
#include “stdio.h”
#include “string.h”
#include n 6
void main()
{
FILE *fp;
char chs[n];
char ch[n];
int i;
if ((fp=fopen(“myfile.c”,”w”))==NULL)
{
printf(“Can’t open the file ang press any key to exit\n”);
getch();
exit();
}
printf(“\nPlease input the string!\n”);
scanf(“%s”,ch);
fputs(ch,fp);
rewind(fp);
for (i=0;i<n;i++)
printf(“%c”,chs[i]);
fgets(chs,6,fp);
printf(“%s”,*chs);
fclose(fp);
}