目录
1.feof()
测试给定流 stream 的文件结束标识符
int feof(FILE *stream)参数为文件指针
返回值
当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。
#include <stdio.h>
int main()
{
FILE *fp=NULL;
char ch[20];
fp=fopen("tst.txt","r");
int i=0;
while(!feof(fp))
{
ch[i]=fgetc(fp);
printf("返回值%d ",feof(fp));
printf("%c\n",ch[i]);
i++;
}
return 0;
}
2. 对图片文件的复制
具体做法:创建一个中间指针,并申请一个文件1的大小空间,然后通过指针将文件1的内容复制到文件2
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp = fopen("./1.jpg", "rb");
if(fp == NULL)
{
perror("Error");
}
FILE *fq = fopen("./2.jpg", "wb");
if(fq == NULL)
{
perror("Error");
}
fseek(fp, 0, 2);
int i = ftell(fp);
rewind(fp);
char *p = (char *)malloc(i);
fread(p, 1, i, fp);
fwrite(p, 1, i, fq);
fclose(fp);
fclose(fq);
return 0;
}
3.符号常量
__LINE__表示行号
__FILE__表示路径
__DATE__表示日期(月、日、年)
__TIME__表示时间
用这四个符号常量去写log日志,我们就可以看到文件的属性,方便后面回顾
#include<stdio.h>
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int mul(int a,int b)
{
return a*b;
}
int div(int a,int b)
{
return a/b;
}
int mod(int a,int b)
{
return a%b;
}
int main()
{
int a=20;
int b=10;
FILE *fp = fopen("./ce.log","w+");
if(fp == NULL)
{
printf("error\n");
}
fprintf(fp,"%d %d\n",__LINE__,add(a,b));
fprintf(fp,"%s %d\n",__FILE__,sub(a,b));
fprintf(fp,"%s %d\n",__DATE__,mul(a,b));
fprintf(fp,"%s %d\n",__TIME__,div(a,b));
printf("%d",mod(a,b));
fclose(fp);
}