首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言基礎教程(四)結構體變量使用實戰:鍵盤輸入、求和運算與文件存儲

     編輯:C 語言基礎

結構體成員訪問與運算

結構體變量以成員為基本單位操作。訪問語法:結構變量.成員名,該表達式類型與成員類型一致,可像普通變量一樣參與賦值、運算。

完整實例:員工工資錄入與存檔

#include <stdio.h>

main() {
    struct {                     // 定義結構變量
        char name[8];
        int age;
        char sex[2];
        char depart[20];
        float wage1, wage2, wage3, wage4, wage5;
    } a;

    FILE *fp;
    float wage;
    char c = 'Y';

    fp = fopen("wage.dat", "w"); // 創建只寫文件
    while (c == 'Y' || c == 'y') {
        printf("\nName: ");  scanf("%s", a.name);
        printf("Age: ");     scanf("%d", &a.age);      // 注意取址
        printf("Sex: ");     scanf("%s", a.sex);
        printf("Dept: ");     scanf("%s", a.depart);
        printf("Wage1: ");    scanf("%f", &a.wage1);
        printf("Wage2: ");    scanf("%f", &a.wage2);
        printf("Wage3: ");    scanf("%f", &a.wage3);
        printf("Wage4: ");    scanf("%f", &a.wage4);
        printf("Wage5: ");    scanf("%f", &a.wage5);

        wage = a.wage1 + a.wage2 + a.wage3 + a.wage4 + a.wage5;
        printf("The sum of wage is %6.2f\n", wage);

        fprintf(fp, "%10s%4d%4s%30s%10.2f\n",
                a.name, a.age, a.sex, a.depart, wage); // 寫入文件

        while (1) {
            printf("Continue? ");
            c = getche();
            if (c=='Y'||c=='y'||c=='N'||c=='n') break;
        }
    }
    fclose(fp);
}

關鍵點提示

  • 非數組成員(age、wage*)scanf 需取址 &;數組成員(name、sex、depart)本身即地址,無需 &。
  • fprintf 格式化輸出到文件,字段寬度對齊便於後續處理。
  • 循環控制用 getche() 即時獲取字符,無需回車。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved