C语言记录程序日志

我们写程序,不可能一次就写的一个bug都没有,必须要不停地修改,有可能自己调试已经没有问题了,发给客户后还是问题很多,这个时候跑到客户处解决问题就不现实了,自己不在还要找到问题的所在,最好的办法就是记录一下程序运行的日志了,只需要跟客户要下日志文件,自己就能定位错误的大概地方了,好提供更改的数据支持。好了,不说废话了,直接上代码:

#include<stdio.h>

int main()
{
	FILE* pf = fopen("log.txt", "a+");
	if (pf == NULL)
	{
		perror("打开文件失败!");
		return 1;
	}

	int i = 0;
	for (i = 0; i < 1000; i++)
	{
		//  向日志文件中写入文件名,程序当前行号,当前日期,当前时间, 当前函数名和 变量i的值
		fprintf(pf, "文件名:%s  行号:%d   日期:%s  时间:%s  函数名:%s  i:%d  \n", __FILE__, __LINE__, __DATE__, __TIME__, __FUNCTION__, i);
	}


	fclose(pf);
	pf = NULL;
	return 0;
}

下面是程序运行完后日志文件的截图:

#

#define  现在的变量名  要替换的变量名

用define可以把一些特别长的名称改成特别短且好记好写的名称。

#include<stdio.h>

#define CASE break;case
#define RZ printf("文件名:%s  行号:%d   日期:%s  时间:%s  函数名:%s  i:%d  \n", __FILE__, __LINE__, __DATE__, __TIME__, __FUNCTION__, i);


int main()
{
	int i = 0;
    RZ         //此处就会打印日志信息,上面difine所代替的那些代码
	switch (i)
	{
	case 1:
	CASE 2:   // 这里要用break;case代替,这样语法就正确了。
/*
	break;
	case 2:	
*/
	CASE 3:

	}
}

#号的使用,在define中使用#号是替换当前值所代表的字符串,不用#号是当前字符串的值。

#include<stdio.h>

#define print(x) printf(" 当前 "#x" 的值是:%d \n",x)

int main()
{
	int a = 10;
	print(a);
	int b = 20;
	print(b);
	int c = 30;
	print(c);
	return 0;
}

上面每次打印的都是整型,如果打印一个小数时这个方法就又不适用了,可以改成下面的设计:

#include<stdio.h>

#define print(x) printf(" 当前 "#x" 的值是:%d \n",x)  
#define print(x, format) printf(" 当前 "#x" 的值是:" format" \n",x)  //把其中的%d 替换了

int main()
{
	int a = 10;
	print(a, "%d");
	int b = 20;
	print(b, "%d");
	int c = 30;
	print(c, "%d");

	//如果打印小数的话原来的%d就不适用了,需要换成%f
	float d = 3.14;
	print(d, "%f");
	return 0;
}

##合并标识符,组成一个新的标识符

#include<stdio.h>

#define HEBING(x,y,z) x##y##z    // 把xyz三个标识符合并成一个新的标识符

int main()
{
	int retab = 99;
	printf("%d", HEBING(ret, a, b));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尚久龙

你的鼓励是我最大的动力!谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值