当我尝试使用我的程序生成一个文本文件时,我总是得到一堆额外的零,然后是我输入的输入。但是,我不想要那些额外的零,只是想要我的输入。
我的文件看起来像这样:
0.000000
0.000000
然后是我想要的输入。
以下是代码中较大部分的函数:
void saveEmployee(int totalEmployees)
{
FILE *employeeFile;
char fileName[40];
int counter = 0;
printf("Save file (add .txt at the end): ");
scanf_s("%s", fileName, 40);
fopen_s(&employeeFile, fileName, "w");
for (counter = 0; counter < totalEmployees; counter++)
{
fprintf(employeeFile, "%s\n", employeeList[counter].name);
fprintf(employeeFile, "%lf\n", employeeList[counter].worked);
fprintf(employeeFile, "%lf\n", employeeList[counter].rate);
fprintf(employeeFile, "%lf\n", employeeList[counter].gross);
fprintf(employeeFile, "%lf\n", employeeList[counter].base);
fprintf(employeeFile, "%lf\n", employeeList[counter].overtime);
fprintf(employeeFile, "%lf\n", employeeList[counter].taxes);
fprintf(employeeFile, "%lf\n", employeeList[counter].net);
}
fclose(employeeFile);
}
我相信这是导致我出问题的功能,但我并不完全确定。
答案 0 :(得分:2)
查找printf()
的规范并学习如何控制格式。例如,您可以使用:
fprintf(employeeFile, "%.2f\n", employeeList[counter].worked);
打印小时2位的小时数。 (是的,我放弃了l
,并没有在原版中没有关系,但是它也不在于替换,并且在阅读规范之后,你会知道这是为什么。)