在C语言中将变量记录到文件中
我有一个相当大的项目是用C编写的(我在这方面没有什么经验),我希望在运行时创建一个日志文件,将变量(所有不同数据类型)的值记录到一个txt文件中 对于像C这样的语言(对于初学者来说),它似乎真的不是很直截了当 我试图编写一个函数,在整个代码中调用它,它只需将值写入一个带有时间戳的txt文件。它不需要很聪明或什么的 我发现这个例子对字符串和整数很有效,但当我尝试将它扩展为double时,它就不起作用了 任何关于如何以易于理解的方式进行此操作的帮助都将不胜感激 谢谢 更新: 代码从链接扩展为双数据类型。。。只是另一个开关箱:在C语言中将变量记录到文件中,c,logging,C,Logging,我有一个相当大的项目是用C编写的(我在这方面没有什么经验),我希望在运行时创建一个日志文件,将变量(所有不同数据类型)的值记录到一个txt文件中 对于像C这样的语言(对于初学者来说),它似乎真的不是很直截了当 我试图编写一个函数,在整个代码中调用它,它只需将值写入一个带有时间戳的txt文件。它不需要很聪明或什么的 我发现这个例子对字符串和整数很有效,但当我尝试将它扩展为double时,它就不起作用了 任何关于如何以易于理解的方式进行此操作的帮助都将不胜感激 谢谢 更新: 代码从链接扩展为双数据类
case 'f':
{
e = va_arg( list, double );
fprintf(fp,"%f", e);
continue;
}
然后我在我的主函数中调用它
int main()
{
double floating = 25.3;
LOG_PRINT("%f", floating);
}
文件的输出为0.0000,但..啊,是的,这是个好地方。
e
的数据类型设置为int
我创建了一个类型为double
的新变量,并使用了它
double d;
case 'f':
{
d = va_arg( list, double );
fprintf(fp,"%f", d);
continue;
}
你能举一个例子,说明你在上面展示的例子失败了吗?看起来这个例子可以很好地工作,它可能只是格式说明符的一个小问题。我使用了%f格式说明符。。。请参阅上面的编辑。什么类型是
e
?在您修改所基于的代码中,e
的声明是int e代码>-所以得到错误的结果并不奇怪。你将一个double
读入一个int
,扔掉任何分数信息,然后对printf()
撒谎,告诉它你正在传递一个double
,而实际上你传递的是int
。考虑:case'f':{double d=va_arg(list,double);fprintf(“fp,”%f,d);continue;}
。还要注意的是,您应该得到0.000000
,因为%f
的默认精度是小数点后6位。