A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 普通蜗牛 中级黑马   /  2015-8-2 17:02  /  431 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//
//  0801总结.h
//  0801代码实践
//
//  Created by apple on 15-8-1.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#ifndef _801______801___h
#define _801______801___h


#endif
********************************************************
typedef 跟 #define  的区别
#define 是在编译之前做的事情,是一个预处理指令,做一个简单的替换

typedef 是定义一个类型,


********************************************************
#if-#else 条件编译指令

条件编译:
        发生在预处理阶段,在编译之前做的事情

    核心:根据条件 编译指定的代码

        条件不同,编译的部分也不同,生成的目标文件(.o)大小也不一样
#if-#else 条件编译指令
    第一种形式的格式为:
    #if 常量表达式
        程序段1
    #else
        程序段2
    #endif

注意:条件编译后面的条件表达式中不能识别变量,它里面只能识别常量
和宏定义

********************************************************
#ifdef 用来判断某个宏是否定义

int a=0;
//检测宏是否定义
#ifdef  DEBUG1
a=10;
#else
a=10000;
#endif

printf("%d\n",a);

#ifndef 检测宏是否定义   ifndef 如果没有定义

#ifndef DEBUG2
a=100;
#else
a=-1;
#endif

********************************************************
代码调试的问题

****************************************************

//-----------------static 与extern对局部变量的作用
static可以修饰局部变量
    //作用:1)static定义的变量的生命周期会得到延长
    //     2) static定义变量的语句只会被执行一次

extern 是不能修饰局部变量的

//-------------------static 与extern对全局变量的作用

static 对全局变量的作用
    static修饰的全局变量,表示该全局变量只能在当前文件中使用 而不能在其他文件中使用
        在不同的文件中,使用static可以声明的同名的变量

extern 对全局变量的作用

    extern修饰的全局变量,表示当前变量可以在本文件中使用,也可以在
    其他文件中使用

注意:
1)extern声明的全局变量在不同的文件中不能同名(两个文件须由包含关系)

//-------------------static 与extern 修饰函数

static修饰的函数是一个内部函数,(只能在定义的那个文件中使用)
extern 声明的函数,可以在定义文件中使用,也可以在其他文件中使用


****************************************************
文件的概念及分类

文件是什么?
“文件”指存储在外部介质上数据的集合,这个数据集有一个名称,叫做文件名。
文件的分类:
1) 从用户的角度看,文件可分为普通文件和设备文件两种。
2) 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。

****************************************************

C语言文件指针
在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。

定义说明文件指针的一般形式为:
FILE *指针变量标识符;

其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件 当前位置等信息。在编写源程序时不必关心FILE结构的细节。


****************************************************
文件的打开和关闭

文件在进行读写操作之前要先打开,使用完毕要关闭。所谓打开文件,实际上是建立文件的各种 有关信息,并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联 系,也就禁止再对该文件进行操作。


//----------------------文件的打开(fopen函数)
fopen函数用来打开一个文件,其调用的一般形式为: 文件指针变量名 = fopen( 文件名, 使用文件方式 );
其中:
“文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名; “使用文件方式”是指文件的类型和操作要求; “文件名”是字符串常量或字符串数组。
例如:
//定义文件指针
FILE *fp = NULL;
//打开文件
fp = fopen("a.txt", "r"); //r 表示读文件
其意义是在当前目录下打开文件a.txt,只允许进行“读”操作,并使fp指向该文件。


//-----------------------文件关闭函数(fclose函数)

文件一旦使用完毕,应用关闭文件函数把文件关闭,以避免文件的数据丢失等错误。
fclose函数调用的一般形式是: fclose(文件指针);
例如: fclose(fp);

fclose(fp); 正常完成关闭文件操作时,fclose函数返回值为0。如返回非零值则表示有错误发生。

注意:如果文件写操作时,没有进行关闭,可能会导致文件写入失败


//------------------------操作文件的步骤:

1)引入头文件stdio.h
2) 建立文件指针

FILE *fp = NULL;

3) 打开文件

fopen(文件名,操作方式);

如果打开成功,返回文件的首地址
失败,返回NULL

4) 操作文件

5)关闭文件

fclose(文件指针);

****************************************************
文件的使用方式和注意事项

//---------------------文件使用方式

文件使用方式      意义
r               打开一个已存在的文件,准备从文件中读取数据。不能向文件写数据
w               创建一个新文件,准备向文件写入数据。不能从文件中读取数据。如
                果文件已经存在,这个文件将被覆盖(先删后建)
a               打开一个已存在的文件,准备在文件尾部追加数据。不能从文件中读
                取数据。如果文件不存在,则创建这个文件准备写入数据
r+              打开一个已存在的文件,准备读写。既可以读取数据,也可以写入数
                据
w+              创建一个新文件,准备读写。如果文件已经存在,则覆盖原文件
a+              等价于a,但可从文件中读取数据
t               打开一个文本文件
b               打开一个二进制文件

//----------------------文件注意事项

****************************************************
数据块读写函数  fread fwrite
FILE *fp =NULL;//第一步 建立文件指针fp

fp=fopen("a.txt", "w");//第二步 创建a.txt文件,fopen 打开文件,w 进行写操作  指针fp指向a.txt

char *str="may";//建立一个字符串 准备写入文件中
//fwrite(地址,块大小,    次数,指针)
  fwrite(str,strlen(str), 1, fp);//第三步 操作文件 fwrite 进行文件写入操作,将str地址的字符串  每次写strlen(str)个长度,分1 次 写入fp所指向的文件

fclose(fp); //关闭文件之后刚才写入的内容才能保存,才能进行文件的读出

fp=fopen("a.txt", "r");//打开a.txt文件 进行读的操作

char ch[4]; //定义一个数组 将读出的字符 存储到数组中
//fread(地址, 块大小, 次数,指针);
  fread(ch, sizeof(ch),1,  fp);//从fp指针指向的文件中 每次读出sizeof(ch)个数据,分1次 读出数据 并将数据 存储进数组ch 中

****************************************************

判断文件是否创建成功

FILE *fp =NULL;//建立文件指针

fp=fopen("a.txt", "w");// 打开文件

if (fp!=NULL) {
    //如果创建成功 进行文件操作
   
}else {
    //如果失败 提示用户失败
    printf("打开失败,按任意键退出\n");
    getchar();//从键盘接收一个字符
    return 0;//程序结束
   
}

****************************************************




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马