C教程-----指針、結構、聯合和枚舉(2)

字號:

2. 結構變量的使用
    結構是一個新的數據類型, 因此結構變量也可以象其它類型的變量一樣賦值、
    運算, 不同的是結構變量以成員作為基本變量。
    結構成員的表示方式為:
    結構變量.成員名
    如果將"結構變量.成員名"看成一個整體, 則這個整體的數據類型與結構中
    該成員的數據類型相同, 這樣就可象前面所講的變量那樣使用。
    下面這個例子定義了一個結構變量, 其中每個成員都從鍵盤接收數據, 然后
    對結構中的浮點數求和, 并顯示運算結果, 同時將數據以文本方式存入一個名為
    wage.dat的磁盤文件中。請注意這個例子中不同結構成員的訪問。
    例3:
    #include
    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"); /*創(chuàng)建一個文件只寫*/
    while(c==’Y’||c==’y’) /*判斷是否繼續(xù)循環(huán)*/
    {
    printf(" Name:");
    scanf("%s", a.name); /*輸入姓名*/
    printf("Age:");
    scanf("%d", &a.wage); /*輸入年齡*/
    printf("Sex:");
    scanf("%d", 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 ", wage);/*顯示結果*/
    fprintf(fp, "sM%4s0s.2f ", /*結果寫入文件*/
    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);
    }