博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2012/9/29——C一些知识
阅读量:6481 次
发布时间:2019-06-23

本文共 1710 字,大约阅读时间需要 5 分钟。

(1)文件输入/输出:

  •     程序与文件的通信方式:文件重定向
  •     C提供文件的两种视图:二进制视图,文本视图(映射,如:/r/n映射成/n)。
  • FILE   *ftp;
  • fopen(“打开的文件名”,   “文件指定的打开模式”)——————fclose(fp):关闭指针为fp的指定文件,同时根据需求刷新缓冲区,成功关闭,返           回0,否则返回EOF
  • ch=getc(fp)和putc(ch,fout);
  • fprintf(stdout,"Cant open \"words"\ file.\n");fprintf(fp,"%s",words);rewind(fp):回到文件的开始处;
  • fgets(buf::一个char数组名称,MAX:字符串最大长度,fp:一个FILE指针);fputs(buf,fp);
  •    随机存取:fseek("指向搜索文件的FILE指针,且这个文件时已经fopen了的打开文件",  "offset偏移量:从起始点开始要移动的距离必须为long类型值",   "模式:用来标识起始点:SEEK_SET:文件开始;SEEK_CUR:当前位置;SEEK_END:文件结尾")  正常,返回值为0,否则,返回-1                               ftell():返回文件当前位置

(2)结构和其他数据形式:

  • //建立结构声明

          struct book{

              char title[MAX];

              char author[MAX];

          float value;

            };

     int main(){

        //定义结构变量

         struct book library;

        //访问结构成员

         gets(library.title)

         scanf("%s",&library.value);

……

      }

  • 枚举类型:enum
  • typedef

          typedef unsigned char BYTE;

          BYTE x;

     //初始化结构变量

    struct book library={

         "The pirate",

         "Renee Vivotte",

         1.95

    } ;

(3)C预处理器和C库

  •  编译器将文本划分为:预处理的语言符号序列,空白字符,注释序列。
  •  明显常量:#define    所选择的缩略语(宏)     替换列表/主体     

          而使用const可以创建全局常量,局部常量,数字常量,数组常量,结构常量

  • 类函数宏:如:#define SQUARE(X)    X*X;

                             #x="x"         ##x

  • 宏的优点:不检查其中的变量类型
  • 文件包含:#include,头文件内容常见形式
  1. 明显常量:stdio.h中的EOF,NULL等
  2. 宏函数:getchar,getc
  3. 函数声明:如string.h
  4. 结构模版定义FILE
  5. 类型定义
  • 其他指令:

          #undef:取消定义一个给定的#define;如:#define LIM 400;   #undef LIM;

          条件编译:

             (1)#ifdef   MAVIT

                         #include "horse.h"

                         #define STA 5

      #else

         #include "cow.h"

        #define STA  15

      #endif

            (2)#ifndef

                    避免多次包含

            (3)#if 和 #elif

                  #if SYS==1

                    #include "ibm.h"

                  #elif SYS==2

                     #include "vax.h"

                  #else

                     #include "mac.h"

                  #endif

              (4)#line  和  #error

                  #line:  重置_ _LINE_ _和_ _FILE_ _宏报告的行号和文件名。

                           #line 1000   "cool.c"

                  #error

               (5)#pragma  c9x  on

  • 内联函数:inline 

      (3)qsort(数组头部指针, 需要排序项目的数量, 每个项目所占空间,  int (*compair)(const void *,const *void *)):快速排序

  • 诊断库:assert.h

 

转载于:https://www.cnblogs.com/programmersong/archive/2012/09/29/2708167.html

你可能感兴趣的文章
20.调用animate()方法制作简单的动画效果
查看>>
2015-06-29
查看>>
启用了不安全的HTTP方法【转】
查看>>
throws和throw的区别
查看>>
++i和i++的区别
查看>>
程序员总结分析:为什么要用原生 JavaScript 代替 jQuery?
查看>>
干货!前端开发指南20+
查看>>
POJ2018 Best Cow Fences 二分
查看>>
Centos 安装 RabbitMQ
查看>>
月薪7K的同学分享“远程班”学习体会
查看>>
nginx的Mainline version、Stable version、Legacy version的版本区别
查看>>
Redis多实例配置以及主从同步
查看>>
《人件》阅读笔记五
查看>>
identify.js
查看>>
LINQ的分组聚合技术
查看>>
Buildroot stress-ng Linux系统压力测试
查看>>
01-jQuery的介绍
查看>>
iconfont的使用
查看>>
开源网络爬虫程序(spider)一览
查看>>
迭代器、推导式、函数式编程学习笔记
查看>>