首页 > 代码库 > 几年前做家教写的C教程(之五专讲结构体与文件操作)

几年前做家教写的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("\n");         for(i=0;i<3;i++)         {                   printf("%5s:%d\n",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!\n");                   exit(0);         }         ch=getchar();  /*接受在执行scanf语句时最后的回车符*/         ch=getchar();  /*接受输入的第一个字符*/          while(ch!=#)         {                   fputc(ch,fp);                   putchar(ch);                   ch=getchar();  /*接受putchar中的换行符*/         }         putchar(10);  /*想ping命令输出一个换行符*/         fclose(fp);}