标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。
__LINE__ 表示当前源代码行号 类型是一个整数类型
__FILE__ 表示当前.c的文件名 类型是一个字符串类型
__DATE__ 表示编译文件的日期 类型是一个字符串类型
__TIME__ 表示编译文件的时间 类型是一个字符串类型
#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 adv(int a,int b)
{
return a%b;
}
int main()
{
int a= 10;
int b = 20;
FILE *fp = fopen("./20220921.log","w+");
if(fp == NULL)
{
printf("open failed\n");
}
int ret1 = add(a,b);
fprintf(fp,"line:%d %d\n",__LINE__,ret1);
int ret2 = sub(a,b);
fprintf(fp,"file:%s %d\n",__FILE__,ret2);
int ret3 = mul(a,b);
fprintf(fp,"date:%s %d\n",__DATE__,ret3);
int ret4 = div(a,b);
fprintf(fp,"time:%s %d\n",__TIME__,ret4);
int ret5 = adv(a,b);
fprintf(fp,"file:line:date:time:%s\n",__FILE__,__LINE__,__DATE__,__TIME__,ret5);
return 0;
}
图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。
例程:
#include<stdio.h>
int main()
{
FILE *fp = fopen("./1.jpg","rb");
if(fp == NULL)
{
printf("oprn failed");
}
FILE *fq = fopen("./2.jpg","wb");
if(fq == NULL)
{
printf("oprn failed");
}
rewind(fp);
char str[100];
char ch;
while(1)
{
if(feof(fp) != 0)
{
break;
}
ch = fgetc(fp);
fputc(ch,fq);
}
fclose(fp);
fclose(fq);
return 0;
} 版权声明:本文为m0_73189710原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。