标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型

函数声明:

1、隐式声明:在没有声明的情况下,系统可根据参数类型判断去调用函数(有可能出错)

2、显式声明:声明在被调用之前,如:double add(double,double);  函数声明参数可只写类型,不需要写函数体。

文件操作:

fopen  --打开文件,FILE *pFile=fopen("a.txt","w");

fopen的打开模式:

r:只能读,要求文件存在

r+:可读可写,要求文件存在

w:只能写,创建文件,如果文件存在则先删除旧文件

w+:可读可写,创建文件,如果文件存在则先删除旧文件

a:只能写,如不存在则创建文件,如果存在则不修改文件内容,追加内容

a+:可读可写,如不存在则创建文件,如果存在则不修改文件内容,追加内容

b:以二进制方式操作文件,可与以上几个混合使用

fwrite  --向文件写入内容,int arr[5]={0};fwrite(arr,sizeof(int),5,pFile);

fread   --从文件读取内容,int arr[5]={0};fread(arr,sizeof(int),5,pFile);

fclose  --关闭文件,fclose(pFile);pFile=NULL;

fputs   --写入内容,char str[20]={‘a‘,‘b‘};fputs(str,pFile);

fgets   --读取内容,char str[20]={0};fgets(str,20,pFile);//从文件读取19字符+‘\0‘

ftell(FILE* pfile)   --得到指针位置距离开头的距离,如果当前指针是文件尾,可以得到文件大小

rewind(FILE* pfile)  --把指针位置移到开头

fseek(FILE* pfile,int relativeposition,SEEK_FLAG flag)  --定位读写指针

flag:

SEEK_SET --开头

SEEK_CUR --当前位置

SEEK_END --文件尾

联合类型(union):多个变量共享一段内存,同一时刻只有一个成员变量具有有效值。

例如:

union{

int i;

double d;

}myunion;

枚举类型:

enum color{RED,BLUE,GREEN};//转换为int值依次是 0,1,2

enum color{RED=1,BLUE=4,GREEN};//转换为int值依次是 1,4,5

使用方法:

enum color{RED=5,BLUE,GREEN} mycolor,mycolor1;//定义两个变量

mycolor=(enum color) 7;

cout<<(int)BLUE<<endl;//直接使用

标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型

时间: 2024-08-06 11:58:07

标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型的相关文章

标C编程笔记day08~day10代码规范、编译、库函数、命名空间、函数调用、哑元函数

代码编写规范,命令行编译,库函数简介,命名空间介绍,函数调用介绍,哑元函数介绍 一般来说,有.c实现文件,应该都要有.h头文件,.c文件中的所有函数都应该在.h文件中声明. 命令行编译方法: 1.gcc 后面带所有.c 文件 -o 输出文件名   直接生成可执行文件 2.依次gcc -c .c文件  -o ***.o  生成***.o文件 然后 gcc 所有.o文件 -o 输出文件   生成可执行文件 程序中的静态全局变量不可以被其他文件中的语句使用. .c文件使用.h文件中的全局变量:exte

C++MFC编程笔记day07 MFC的文件操作、序列化和保存

一 MFC的文件操作 1 相关类 CFile类-封装了文件句柄以及操作文件的API函数. CFileFind类-提供文件查找功能. 2 CFile类的使用 2.1 打开或者新建文件 CFile::Open 2.2 文件读写 注意:1 文件指针位置 2 异常处理 CFile::Write CFile::Read CFile::SeekToBegin 2.3 关闭文件 CFile::Close 2.4 设置/获取文件属性 CFile::SetStatus/GetStatus 3 CFileFind类

C++MFC编程笔记day05 文档类-单文档和多文档应用程序

文档类 1 相关类 CDocument类-父类是CCmdTarget类,所以,文档类也可以处理菜单等 命令消息.作用保存和管理数据. 注意事项:如何解决断言错误 2 在视图中显示文档中的数据 2.1 CView::OnInitialUpdate 作用初始化视图,在附加文档之后,显示之前,由框架调用. 2.2 CView::GetDocument 获取与视图相关的文档 2.3 CFrameWnd::InitialUpdateFrame 作用,初始化更新框架,可以引起CView::OnInitial

标C编程笔记day07 常用标准库介绍、字符串输入处理、字符指针的使用

常用标准库: assert.h:断言,包含assert宏.可以进行自我检查 ctype.h:字符处理,字符的分类,大小转换 errno.h:错误信息处理 float.h:浮点数特性 limits.h:整数的大小,提供了描述整数类型的宏 lcale.h:本地化 math.h:数学函数 setjmp.h:跳转 signal.h:信号处理 stdarg.h:可变长参数处理 stddef.h:经常使用的类型的定义 stdio.h:输入输出 string.h:字符串处理 stdlib.h:其他函数,字符串

unix环境高级编程笔记(3)-- 文件I/O(2)

本文讨论如何在多个进程间共享文件,以及所涉及的内核数据结构.然后会介绍dup,dup2,fcntl等函数的使用. 1 数据结构 内核使用三种数据结构表示打开的文件: (1)每个进程在进程表中都有一个记录项,记录项中有一张打开文件文件描述符表,每项包括: a )文件描述符标志(close_on_exec) b)指向一个文件表的指针 (2)内核为所有打开的文件维护一张文件表,每个文件表项包括: a)文件状态标志(读 写  添加  同步和非阻塞) b)  当前文件偏移量 c)  指向v节点的指针 (3

unix环境高级编程笔记(5)—— 文件和目录(2)

1 文件截短 有时我们需要把文件尾端处截去一些数据以缩短文件,将一个文件清0是一个特例.在打开文件时使用O_TRUNC标志可以做到这一点. #include <unistd.h> int truncate(const char *pathname,off_t length); int ftruncate(int filedes,off_t length); 成功返回0,出错返回-1. 如果length 小于文件长度,则使文件长度截断至length,剩下的不可访问.如果length大于文件长度,

Day 3 函数 及文件读写操作

一.函数 日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现.在编程的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代码调用. 假设我们在编程过程中需要计算圆形的面积.如果我们不是用函数,每次需要计算原型面积的时候都需要这样 1 r1 = 12 2 r2 = 3.4 3 r3 = 3.1 4 s1 = 3.14 * r1 * r1 5 s2 = 3.14 * r2 * r2 6 s3 = 3.14 * r3 * r

标C编程笔记day06 动态分配内存、函数指针、可变长度參数

动态分配内存:头文件 stdlib.h malloc:分配内存 calloc:分配内存,并清零 realloc:调整已分配的内存块大小 演示样例: int *p=(int *) malloc(3*sizeof(int));//分配内存,成功返回首地址,失败返回NULL free(p);p=NULL;//释放分配的内存,并改动指针的值,避免出现野指针(指向一个地址,但地址已被回收) const 与指针: const int *p; //指针可变,指针相应的数据不可改动 int * const p;

unix环境高级编程笔记(2)-- 文件I/O之不带缓冲的I/O

1 引言 不带缓冲区的I/O(unbuffered I/o)是指每个read 和 write 都调用内核中的一个系统调用,这些不带缓冲区的I/O 不是ISO C 的组成部分. 2 文件描述符 每个打开的文件都通过文件描述符引用,文件描述符是一个非负整数.open 和 create 函数返回的文件描述符供 read write 和 close 使用. unix中文件描述符0与标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错输出相关联. 3 不带缓冲区的I/O函数 下面介绍6个常