如何删除文本文件中的额外零?

时间:2015-07-31 00:13:14

标签: c text-files

当我尝试使用我的程序生成一个文本文件时,我总是得到一堆额外的零,然后是我输入的输入。但是,我不想要那些额外的零,只是想要我的输入。

我的文件看起来像这样:

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);
}

我相信这是导致我出问题的功能,但我并不完全确定。

1 个答案:

答案 0 :(得分:2)

查找printf()的规范并学习如何控制格式。例如,您可以使用:

fprintf(employeeFile, "%.2f\n", employeeList[counter].worked);

打印小时2位的小时数。 (是的,我放弃了l,并没有在原版中没有关系,但是它也不在于替换,并且在阅读规范之后,你会知道这是为什么。)