1、共用体

共用体是一种特殊的结构,允许在相同的位置存储不同的数据类型。可以定义一个带有多成员的共同体,但是任何时候只能有一个成员带有值。

定义共用体:

union Data
{
int i;
float f;
char str[20];
} data;
共用体占用的内存应足够存储共用体中最大的成员,即data将占用20个字节的内存

2、typedef

ex:
typedef struct
Books{…}Book;
{…
       Book book;
…}

typedef
与#define的区别:
typedef仅限于为类型定义符号名称,#define 不仅可以定义别称,还能为数值定义别名

typedef由编译器执行解释,#define由预编译器进行处理


3、输入输出

  • getchar() & putchar()函数
    int getchar(void)
    函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。
    int putchar(int c)
    函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。

gets() & puts()函数

char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或
EOF。(stdin:标准输入文件指针)

int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到
stdout。(stdout:标准输出文件指针)

  • scanf() & rpintf()函数

int scanf(const char *format, ...) 函数从标准输入流 stdin 读取输入,并根据提供的
format 来浏览输入

int printf(const char *format, ...) 函数把输出写入到标准输出流 stdout
,并根据提供的格式产生输出。

注:format 可以是一个简单的常量字符串,但是您可以分别指定 %s、%d、%c、%f
等来输出或读取字符串、整数、字符或浮点数。

4、文件读写

  • 打开文件

    以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE
    的一个对象,类型FILE 包含了所有用来控制流的必要的信息。

    ex:    FILE *fopen(const char * filename,const cahr * mode);

    在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:

    模式 描述
    r 打开一个已有的文本文件,允许读取文件。
    w 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,你的程序会从文件的开头写入内容。
    a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
    r+ 打开一个文本文件,允许读写文件。
    w+ 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度???,如果文件不存在,则会创建一个新文件。
    a+ 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

    如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

  • 关闭文件

int fclose(FILE *fp);

如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回
EOF。这个函数实际   上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h
中的常量。

  • 写入文件

int fputc(int c,FILE *fp);

函数 fputc() 把参数 c 的字符值写入到 fp
所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF

  • 读取文件

    int fgetc(FILE *fp);   //从文件中读取单个字符

    fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符,如果发生错误则返回
    EOF。遇到空格即停止;

    char *fgets(char * buf , int n, FILE *fp)

    函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区
    buf,并在最后追加一个 null 字符来终止字符串。遇到换行符读取终止;

    也可以使用 int fscanf(FILE *fp, const char *format, ...)
    函数来从文件中读取字符串,但是在遇到第一个空格字符时,它会停止读取。

  • 二进制I/O函数

二进制输入输出:

szie_t fread(void *ptr,size_t size_of_elements,size_t
number_of_elements,FILE *a_file) ;

size_t fwrite(const void *ptr,size_t size_of_elements,size_t
number_of_elements,FILE *a_file);

这两个函数都是用于存储块的读写 - 通常是数组或结构体。

C复习手记(Day2)的更多相关文章

  1. C复习手记(Day4)

    1.C错误处理 errno.perror() 和sterror() perror() 函数显示您传给它的字符串,后跟一个冒号.一个空格和当前 errno 值的文本表示形式. strerror() 函数 ...

  2. C复习手记(Day3)

    C预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理.我们将把 C 预处理器 ...

  3. C复习手记(Day1)

    auto存储类:所有局部变量默认的存储类  ex:{int mount;auto int month}  auto只用在函数内,只做局部变量 register 存储类:register 存储类用于定义 ...

  4. ROS学习手记 9 -- 阶段性复习

    ROS 阶段性总结 1. 基本概念 ROS 是建立在Linux特别是Ubuntu系统上的一套软件系统,它具有操作系统的特征 ,负责管理各个模块的协同运行.设计初衷主要是面向机器人软硬件开发的特点:多 ...

  5. 复习JavaScript随手记

    数据类型 基本类型 string number boolean undefined number类型,包含整数浮点数 NaN和自己都不相等,涉及NaN的计算结果都是NaN isNaN()函数用于判断一 ...

  6. HQYJ嵌入式学习笔记——C语言复习day2

    1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7   (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...

  7. Knockout.js随手记(2)

    计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...

  8. 清北学堂学习总结day2

    今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a, ...

  9. ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters

    上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分 ...

随机推荐

  1. C++拾遗(六)函数相关(1)

    返回值 C++规定返回值不能是 数组.但可以是其它任何类型(包括结构体和对象). 通常,函数将返回值复制到指定的CPU寄存器或内存单元中,然后调用函数调用该内存单元的值. 函数原型 参数列表中可以不包 ...

  2. 逆波兰表达式 java

    描述  逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式的优点是运算符之间不必有优先级关系, 也不必用括号改变运算次序,例如(2 + 3) ...

  3. UIScrollView 滚动停止的时候一次调用此方法

    //拖动返回选中的索引 当滚动视图停止时的时候 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ CGFloat wid ...

  4. HTML5+Css3-webkit-filter

    -webkit-filter 现在规范中支持的效果有: grayscale 灰度 sepia 褐色 saturate 饱和度 hue-rotate 色相旋转 invert 反色 opacity 透明度 ...

  5. jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中

    jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Se ...

  6. oldboy第十三天学习

    1.现在给我的感觉是,python终于入门了开始越学越简单了.变得更好理解了. 一.memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它 ...

  7. iOS UITableView的使用大全-备用

    首先.对UITableView进行讲解,下面有对它进行实际的应用 UITableView 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍存在于iPhone的应 ...

  8. Sicily 1034. Forest

    题目地址:1034. Forest 思路: 网上很多说用深搜,很任性.......发现广搜也挺好用的,实验课打的(⊙o⊙)…orz........囧. 先找根结点,根据根结点广搜深度,广搜宽度,不过要 ...

  9. uva 10026 Shoemaker's Problem

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  10. USB 0xC0000012 错误详解

    0xC0000012Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x86). Complements of www.perisoft. ...