将结构写入文本文件

裘德

因此,我最近掌握了结构,终于对数组感到满意,现在我必须处理我的教授希望我能够存储100万个结构(工资记录)的文件,而且我敢肯定,大数组会导致程序崩溃。因此,我对如何将结构备份到txt文件并在启动时将其上传回我的程序感到困惑。文字会乱七八糟吗?这是我程序的主要部分,我需要将其放入文件中。它基本上使用struct制作工资记录。所以我只是想知道有人能给我提示将其发送到文本文件中吗

void payRollAdd(PAYROLL employee[], long int *pCounter){    
    int userinput;
    do{
        printf("Enter Employee Name:\n");
        fgets(employee[*pCounter].name, 40, stdin);
        printf("Please Enter the paydate(mmddyyyy):\n");
        scanf_s("%02d%02d%d", &employee[*pCounter].payDate.month, &employee[*pCounter].payDate.day, &employee[*pCounter].payDate.year);
        printf("Enter Employee Age:\n");
        scanf_s("%d", &employee[*pCounter].age);
        printf("Enter Employee Hours Worked\n");
        scanf_s("%f", &employee[*pCounter].hrsWorked);
        printf("Enter Employee Hourly Wage:\n");
        scanf_s("%f", &employee[*pCounter].hrlyWage);
        printf("  Employee Data \n");
        printf("Name: %s\n", employee[*pCounter].name);
        printf("Age:  %d\n", employee[*pCounter].age);
        printf("Pay Date: %02d/%02d/%d:\n", employee[*pCounter].payDate.month, employee[*pCounter].payDate.day, employee[*pCounter].payDate.year);
        printf("Hours Worked: %0.2f\n", employee[*pCounter].hrsWorked);
        printf("Hourly Wage: $%0.2f\n", employee[*pCounter].hrlyWage);


        if (employee[*pCounter].hrsWorked > 40.00){
            float temp = 40.00;
            employee[*pCounter].regPay = temp * employee[*pCounter].hrlyWage;
            printf("Regular pay: $%0.2f\n", employee[*pCounter].regPay);
        }
        else
        {
            employee[*pCounter].regPay = employee[*pCounter].hrsWorked * employee[*pCounter].hrlyWage;
            printf("Regular pay: $%0.2f\n", employee[*pCounter].regPay);
        }
        if (employee[*pCounter].hrsWorked > 40.00){
            float temp2 = 0.00;
            temp2 = employee[*pCounter].hrsWorked;
            temp2 -= 40.00;
            employee[*pCounter].otPay = temp2 * `(employee[*pCounter].hrlyWage + (employee[*pCounter].hrlyWage / 2.00));`
            printf("OT pay: $%0.2f\n", employee[*pCounter].otPay);
        }
        else
        {
            employee[*pCounter].otPay = 0;
            printf("OT pay: $0\n");
        }
        employee[*pCounter].totalPay = employee[*pCounter].regPay + employee[*pCounter].otPay;
        printf("Total Pay: $%0.2f\n", employee[*pCounter].totalPay);
士兵

您可以结合使用fseek,fwrite和fread来读写文件并在文件中查找结构:

fseek(fp,0L,SEEK_END);
fwrite(&employee,sizeof(employee),1,fp);

您可以执行类似的操作来读取以下记录:

fseek(fp,sizeof(employee) * recno,SEEK_SET);
fread(&employee,sizeof(employee),1,fp);

检查返回码!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结构数组写入文本文件

来自分类Dev

将列表写入文本文件

来自分类Dev

将列写入文本文件

来自分类Dev

将交易写入文本文件

来自分类Dev

将系列写入文本文件

来自分类Dev

将文本文件读入结构

来自分类Dev

如何仅将新文本写入文本文件

来自分类Dev

python将文本数据写入文本文件

来自分类Dev

将图像文本写入新的文本文件?

来自分类Dev

将多维数组写入文本文件文件

来自分类Dev

将导入的.py文件的结果写入文本文件

来自分类Dev

将XML数据文件写入文本文件

来自分类Dev

将命令行输出写入文本文件

来自分类Dev

将终端的动态输出写入文本文件

来自分类Dev

以表格格式将数据写入文本文件

来自分类Dev

Java:无法将ArrayList <Long>写入文本文件

来自分类Dev

将ObservableCollection的内容写入文本文件

来自分类Dev

如何将ArrayList写入文本文件?

来自分类Dev

将实例变量写入文本文件

来自分类Dev

将LINQ结果写入文本文件

来自分类Dev

将Scala中生成的数据写入文本文件

来自分类Dev

无法将输出写入JAVA中的文本文件

来自分类Dev

将Boost ublas矩阵写入文本文件

来自分类Dev

从现场将数据写入本地文本文件

来自分类Dev

Swift-将数组写入文本文件

来自分类Dev

将beeline查询结果写入文本文件

来自分类Dev

将Nokogiri输出写入文本文件

来自分类Dev

将arraylist写入文本文件C#

来自分类Dev

将System.Out.Println写入文本文件