zoukankan      html  css  js  c++  java
  • 文件

     

    在线C环境:https://clin.icourse163.org/

     

    格式化输⼊输出

     

     

     

     

     

     

     

    2. printf和scanf的返回值

    • 读⼊的项目数
    • 输出的字符数
    • 在要求严格的程序中,应该判断每次调⽤scanf或 printf的返回值,从⽽了解程序运⾏中是否存在问题

    3. ⽂件输⼊输出

    ⽤>和<做重定向

    4. 输⼊结束

    getchar读到了EOF

    scanf返回⼩于要求读的数量

    5. FILE

    FILE* fopen(const char * restrict path, const char * restrict mode);

    int fclose(FILE *stream);

    fscanf(FILE*, ...)

    fprintf(FILE*, ...)

    6.打开⽂件的标准代码

    7. fopen

    8.  ⼆进制⽂件

    • 其实所有的⽂件最终都是⼆进制的
    • ⽂本⽂件⽆⾮是⽤最简单的⽅式可以读写的⽂件
    1. more、tail
    2. cat
    3. vi
    • ⽽⼆进制⽂件是需要专⻔的程序来读写的⽂件
    • ⽂本⽂件的输⼊输出是格式化,可能经过转码

    9.⽂本 vs ⼆进制

    • Unix喜欢⽤⽂本⽂件来做数据存储和程序配置
    1. 交互式终端的出现使得⼈们喜欢⽤⽂本和计算机 “talk”
    2. Unix的shell提供了⼀些读写⽂本的⼩程序
    • Windows喜欢⽤⼆进制⽂件
    1. DOS是草根⽂化,并不继承和熟悉Unix⽂化
    2. PC刚开始的时候能⼒有限,DOS的能⼒更有限,⼆ 进制更接近底层
    • ⽂本的优势是⽅便⼈类读写,⽽且跨平台
    • ⽂本的缺点是程序输⼊输出要经过格式化,开销⼤
    • ⼆进制的缺点是⼈类读写困难,⽽且不跨平台
    • int的⼤⼩不⼀致,⼤⼩端的问题...
    • ⼆进制的优点是程序读写快

     10.程序为什么要⽂件

    • 配置
    1. Unix⽤⽂本,Windows⽤注册表
    • 数据
    1. 稍微有点量的数据都放数据库了
    • 媒体
    1. 这个只能是⼆进制的
    • 现实是,程序通过第三⽅库来读写⽂件,很少直接读 写⼆进制⽂件

    11. ⼆进制读写

    12. 为什么nitem?

    • 因为⼆进制⽂件的读写⼀般都是通过对⼀个结构变量 的操作来进⾏的
    • 于是nitem就是⽤来说明这次读写⼏个结构变量!

    13. 在⽂件中定位

    • long ftell(FILE *stream);
    • int fseek(FILE *stream, long offset, int whence);
    1. SEEK_SET:从头开始
    2. SEEK_CUR:从当前位置开始
    3. SEEK_END:从尾开始(倒过来)

    14. 可移植性

    • 这样的⼆进制⽂件不具有可移植性
    1. 在int为32位的机器上写成的数据⽂件⽆法直接在int 为64位的机器上正确读出
    • 解决⽅案之⼀是放弃使⽤int,⽽是typedef具有明确 ⼤⼩的类型
    • 更好的⽅案是⽤⽂本

    位运算

    1. 按位运算

    C有这些按位运算的运算符:

    & 按位的与

    | 按位的

    ~ 按位取反或

    ^ 按位的异或

    << 左移

    >> 右移

    2. 按位与 &

    3. 按位或 |

    4.  按位取反 ~

     

    5. 逻辑运算vs按位运算

    6. 左移 <<

    7. 右移 >>

    no zuo no die

    8.输出⼀个数的⼆进制

    9. 位段

    • 可以直接⽤位段的成员名称来访问
    1. ⽐移位、与、或还⽅便
    • 编译器会安排其中的位的排列,不具有可移植性
    • 当所需的位超过⼀个int时会采⽤多个int
  • 相关阅读:
    正则表达式基础以及应用
    日常使用之css篇
    echarts的使用总结
    &#65279导致页面顶部空白一行
    vue.js单页面应用实例
    BFC的外边距折叠
    .net 跳出Frameset框架
    Cache缓存使用
    Kafka集群搭建及安全机制手册
    PHP学习笔记
  • 原文地址:https://www.cnblogs.com/hechunfeng/p/15647913.html
Copyright © 2011-2022 走看看