zoukankan      html  css  js  c++  java
  • 几年前做家教写的C教程(之五专讲结构体与文件操作)

    C语言学习宝典(5)

    结构体:

    将不同类型的数据组合成为一个有机的整体,这个整体就是一个结构体。

    例如:

    Struct student

    {

             Int name;

             Char sex;

             Float score;

    };

    使用方法:

    类型名 成员名;

    一般形式:

    Struct

    {

             成员列表;

    }变量名表列;

    结构体变量的引用:

    结构体变量名.成员名

    文件:

    FILE  *fp;

    Fp=fopen(文件名,文件打开方式);

    Fclose(文件指针)

    例1  对候选人得票的统计程序,设有3个后选人,每次输入一个候选人的名字,要求最后输出得票结果

    /******************************
    
      功能:统计3个候选人得票
    
    *****************************/
    
    #include <stdio.h>
    
    #include "string.h"
    
     
    
    struct Person
    
    {
    
             char name[20];
    
             int count;
    
    };
    
    struct Person Leader[3]={"Li",0,"Zhang",0,"Wang",0};
    
    void main()
    
    {
    
             int i,j;
    
             char Leader_name[20];
    
             for(i=1;i<5;i++)
    
             {
    
                       scanf("%s",Leader_name);
    
                       for(j=0;j<3;j++)
    
                       {
    
                                if(strcmp(Leader_name,Leader[j].name)==0)
    
                                         Leader[j].count++;
    
                       }
    
             }
    
             printf("
    ");
    
             for(i=0;i<3;i++)
    
             {
    
                       printf("%5s:%d
    ",Leader[i].name,Leader[i].count);
    
             }
    
    }

    例2  从键盘输入一些字符,逐个把他们送到磁盘上去,知道输入一个”#”为止

    /**********************
    
    功能:从键盘输入一些字符,直到输入"#"为止
    
    ***********************/
    
     
    
    #include <stdio.h>
    
    #include <stdlib.h>
    
     
    
    void main()
    
    {
    
             FILE *fp;
    
             char ch,filename[10];
    
             scanf("%s",filename);
    
             if((fp=fopen(filename,"w"))==NULL)
    
             {
    
                       printf("can't open file!
    ");
    
                       exit(0);
    
             }
    
             ch=getchar();  /*接受在执行scanf语句时最后的回车符*/
    
             ch=getchar();  /*接受输入的第一个字符*/
    
     
    
             while(ch!='#')
    
             {
    
                       fputc(ch,fp);
    
                       putchar(ch);
    
                       ch=getchar();  /*接受putchar中的换行符*/
    
             }
    
             putchar(10);  /*想ping命令输出一个换行符*/
    
             fclose(fp);
    
    }
  • 相关阅读:
    CI 知识 :Git介绍及常用操作
    虚拟机的迁移(热迁移)
    kvm虚拟化网络管理
    Zabbix -----安装
    Mariadb 主从
    keepalived + lvs marster 与 backup 之间的 高可用
    LVS 负载均衡 (VS/DR模式 与 VS/TUN 模式)
    linux下部署tomcat 上线jpress博客系统
    docker (2)---存储、网络(利用docker容器上线静态网站)
    openstack(2) -------RabbitMQ集群部署
  • 原文地址:https://www.cnblogs.com/accipiter/p/3891188.html
Copyright © 2011-2022 走看看