C语言高级第二部分

条件编译: 关键字 #if   #ifdef(如果定义了)  #ifndef(如果没定义)

按不同的条件编译去编译不同程部分序,有利于程序的移植和调试。
条件编译可以通过条件语句来实现,但是会对整个程序进行编译,生成的目标代码很长,
采用挑时间编译,则会根据条件之编译程序的1段或2段,生成的目标程序较短。
条件编译发生在编译之前。根据条件编译制定的代码。
需要配合宏定义使用(#define)
使用方法:
以#if开始#endif结束  中间可以写 #elif
列子:
1 #include<stdio.h>
2 #define score 34

 1 #if score < 60
 2     printf("E\n");
 3 #elif score <=69
 4     printf("D\n");
 5 #elif score <=79
 6     printf("C\n");
 7 #elif score <=89
 8     printf("B\n");
 9 #else
10     printf("A\n");
11 #endif

 

使用条件编译指令调试Bug:

 1 #define DEBUG1 1
 2 
 3 #if DEBUG1 ==1
 4 //显示调试信息
 5 #define Log(format,...) printf(format,## __VA_ARGS)
 6 
 7 #else
 8 //不显示调试信息
 9 
10 #define Log(format,...)
11 
12 #endif
13 
14 int main(int argc,const char * argv[]){
15 
16     //DEBUG ==1  显示调试信息
17     //DEBUG ==0  不显示调试信息
18     Log("xxxxxxxxxxxxxx-->%d\n",10);
19     reyurn 0;
20 }
21 
22 
23 //打印结果:  xxxxxxxxxxxxxx-->10

 

static和extern都是用来修饰变量(局部的static实际也是全局的)

static修饰的变量 只有你的包含那个变量的定义的源代码文件可以访问(内部的变量)

extern定义的变量的哪个源文件都可访问 只要声明了就可以(外部变量)

 

 

对文件操作的步骤:
1)一如头文件(stdio.h)
2)定义文件指针
3)打开文件
4)文件读写
5)关闭文件
 
操作文件的相关函数:

字符读写函数:  fgetc和fputc

字符串读写函数:   fgets和fputs

数据块读写函数:   freed和fwrite

格式化读写函数:   fscanf和fprintf

使用以上函数都要求包含stdio.h头文件!

 

 

使用fgetc()获取字符的时候指针自动向后偏移,也就是说:
fgetc(s);
fgetc(s);
fgetc(s);
三次获取的是不同的字符(文件内有多个字符)。
 
fopen与fclose函数:
 

 

使用文件的方式分类:

字符写入文件函数fputc

读字符函数fgetc

 

//步骤:

//1、定义文件指针
FILE *fp = NULL;

//2、打开文件  打开fputc1.txt 以 w(写,如果文件不存在,可创建)
fp = fopen("fputc.txt","w");
//3、判断是否打开成功
if (fp!=NULL){
//4、如果打开成功,要写入字符
    // 要写入地方字符  文件指针
    // 写入字符的变量
    fputc(ch,fp);
    printf("写入成功\n");
}
//5、关闭文件指针!

 

字符串写函数fputs:

 

 

字符串读函数:

函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用形式为:

fgets(字符数组名,n,文件指针);

其中的n是一个整数。表示从文件中读出的字符串不超过n-1个字符。

在读入的最好一个字符后加上串结束标志‘\n’。例如:

fget(str,n,fp);

的意义是从fp所指的文件中读取n-1个字符送入字符数组str中。

列:从string文件中读取一个含10个字符的字符串。

//定义文件指针
FILE *fp = fopen("a.txt",'r');

if(fp != NULL){
    //文件打开成功
    char ch[11];
    //读取10个字符,最后一个放\0
    fgets(ch,11,fp);
    printf("%s\n",ch);
}else{
    //文件打开失败
    printf("文件读取失败请按任意键退出!");
    getchar();//等待用户输入一个字符后,在退出
    exit (1);//程序退出

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2015-07-01 23:22  预估计  阅读(221)  评论(0编辑  收藏  举报