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[];

         int count;

};

struct Person Leader[]={"Li",,"Zhang",,"Wang",};

void main()

{

         int i,j;

         char Leader_name[];

         for(i=;i<;i++)

         {

                   scanf("%s",Leader_name);

                   for(j=;j<;j++)

                   {

                            if(strcmp(Leader_name,Leader[j].name)==)

                                     Leader[j].count++;

                   }

         }

         printf("\n");

         for(i=;i<;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[];

         scanf("%s",filename);

         if((fp=fopen(filename,"w"))==NULL)

         {

                   printf("can't open file!\n");

                   exit();

         }

         ch=getchar();  /*接受在执行scanf语句时最后的回车符*/

         ch=getchar();  /*接受输入的第一个字符*/

         while(ch!='#')

         {

                   fputc(ch,fp);

                   putchar(ch);

                   ch=getchar();  /*接受putchar中的换行符*/

         }

         putchar();  /*想ping命令输出一个换行符*/

         fclose(fp);

}

几年前做家教写的C教程(之五专讲结构体与文件操作)的更多相关文章

  1. 几年前做家教写的C教程(之一)

    C语言学习宝典 首先让我们认识什么是C语言. C语言是一种计算机开发语言,是一种非常基础的开发语言.能够用C语言做很多事情.C语言是顺序执行的程序. 程序应该包括数据描述,数据操作. C语言的数据类型 ...

  2. 几年前做家教写的C教程(之四专讲了指针与汉诺塔问题)

    C语言学习宝典(4) 指针:可以有效的表示复杂的数据结构,能动态的分配动态空间,方便的使用字符串,有效的使用数组,能直接处理内存单元 不掌握指针就没有掌握C语言的精华 地址:系统为每一个变量分配一个内 ...

  3. 几年前做家教写的C教程(之三专讲了递归和斐波那契)

    C语言学习宝典(3) 数组: 一维数组的定义: 类型说明符  数组名[常量表达式] 例如: int  a[10]; 说明:(1)数组名的命名规则和变量名相同,遵循标示符命名规则 (2)在定义数组时需要 ...

  4. 几年前做家教写的C教程(之二)

    C语言学习宝典(2) 认识C语言中的运算符: (1)算术运算符   (+  -  *  /  %) (2)关系运算符    (>  <  ==  >=  <=  != ) (3 ...

  5. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  6. Node.js入门教程 第四篇 (流及文件操作)

    流 Stream是Node.js中的抽象接口,有不少Node.js对象实现自Stream. 所有的Stream对象都是EventEmitter 的实例. 例如:fs模块(用于读写操作文件的模块) fs ...

  7. 【C语言入门教程】7.1 结构体类型变量的定义和引用

    前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

  8. 【C语言入门教程】7.2 结构体数组的定义和引用

    7.2 结构体数组的定义和引用 当需要使用大量的结构体变量时,可使用结构体定义数组,该数组包含与结构体相同的数据结构所组成的连续存储空间.如下例所示: struct student stu_a[50] ...

  9. 【C语言入门教程】7.3 结构体指针的定义和引用

    C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作.在学习结构指针之前,需要再次加深对指针的认识.声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针 ...

随机推荐

  1. Asp.Net MVC<六>:Controller、Action 待续

    控制器 抽象类Controller Visual Studio的向导创建的Controller类型继承自抽象类Controller. 它是ControllerBase的子类. 实现了IControll ...

  2. c#反射-动态加载dll简单例子

    假设已有组件ClassLibraryTEST.dll,放置于程序目录下.组件中ClassLibraryTEST命名空间下有TEST类,类中有方法sum.下面示例就是动态加载组件并调用sum方法的简例: ...

  3. VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式

    恐怕这是今年在上海的最后的一篇博客了,同事们上班都不工作了,我也没有什么事情要做.为什么要写这篇博客呢,原因是我回家要带上自己的笔记本,里面装了一个虚拟机.平时自己的学习和工作都是在虚拟机里进行的.回 ...

  4. iOS获取设备唯一标识的8种方法

    8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...

  5. Java开发11个过不去的梗

    现在随着编程的普及,作为java程序猿开发的过程逐渐的受到领导的重视,无论自己的经理是能看懂,还是不能看懂,一些事项必须注意起来,不要让自己将来处于不尴不尬的境地,当然这样也方便你我他 1.不在属性文 ...

  6. awk删除文件第一列

    awk删除文件第一列 1.采用awk awk '{$1="";print $0}' file 2.采用sed sed -e 's/[^]* //' file sort -R fil ...

  7. Linux 笔记

    权限: rwx rwx rwx 以4 2 1数字表示 rwx x 在目录当中是与『能否进入该目录』有关 w 可以让使用者删除.更新.新建文件或目录 通过  "su - vbird" ...

  8. ActiveMQ结合Spring开发

    ---------------------------------------------------------------------------- Spring结合ActiveMQ开发 : 发送 ...

  9. UI第十二节

    - (void)viewDidLoad {    [super viewDidLoad];        UIButton *btn = [UIButton buttonWithType:UIButt ...

  10. jQuery入门(3)事件与事件对象

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...