1 错误报告

(1)perror函数

  void perror(char const *message)

  error是标准库的一个外部整型变量(errno.h),保存错误代码之后就会把这个信息传递给用户程序,表示操作系统的准确原因。

(2)终止执行

  void exit(int status)

    status参数返回给操作系统,用于提示程序是否完成。预定义中EXIT_SUCCESS和EXIT_FAILURE分别提示程序的终止是成功还是失败。

2 流

   绝大数流是完全缓冲的,这意味着读取和写入实际上都是从一块被称为缓冲区的内存区域来回复制数据。,用于输出流的时候写满了才会被刷新到设备或者文件中。

(1) 文本流

  文本流有些特性在不同的系统中可能不同。其中之一是文本行的最长长度。标准规定至少允许254字符。另一个可能的特性是文本行的结束方式。在MS-DS系统中,文本文件约定一个回车符加上换行符。但是UNIX只是使用一个换行符结尾。

(2) 二进制流

  打开流:

    FILE *fopen(char const *name,char const *name)

      mode:如果一个文件打开是用于读取,那么它必须原先已经存在。但是如果一个文件打开是用于写入的,如果原来已经存在,那么原来的内容会删除。如果原先不存在,那么就创建一个新文件。

    int fclose(FILE *f) 在文件关闭之前刷新缓冲区 执行成功fclose()返回0值 否则EOF

  二进制IO

    把数据写到文件效率最高的方法就是二进制写入。因为避免了数值转换位字符串过程中所涉及的开销和精度损失

    size_t fread(void *buffer,size_t size,size_t count,FILE*stream)

    size_t fwrite(void *buffer,size_T size,size_t count,FILE *stream)

      buffer是一个指向用于保存数据的内存位置的指针,size是缓冲区每个元素的字节数,count是读取或者写入的元素数。

      struct value{

        long a;

        float b;

        char c[SIZE];

      }values[ARRAY_SIZE];

      n_values=fread(values,sizeof(struct VALUE),ARRAY_SIZE,input_stream);

       刷新和定位函数

       int fflush(FILE *stream)//不管缓冲区是不是满勒,当我们需要立即进行物理写入的时候,使用它。

       long ftell

3 格式化的行IO

(1)int fscanf(FILE *stream,char const *format)

(2)int scanf(char* const *format,...)

  这个format字符串参数如果是空白字符,在处理过程中将被忽略,也就是它和输入中的零个或者多个空白字符匹配。

(3)int sscanf(char const *string,char const *format)

  sscanf处理行的技巧

    while(fgets(buffer,BUFFER_SIZE,input)!=NULL)

    {

      if(sscanf(buffer,"%d %d %d %d %d",&a,&b,&c,&d,&e)!=4)

      {}

    }

  

<c和指针>学习笔记6输入输出函数的更多相关文章

  1. C++中的智能指针、轻量级指针、强弱指针学习笔记

    一.智能指针学习总结 1.一个非const引用无法指向一个临时变量,但是const引用是可以的! 2.C++中的delete和C中的free()类似,delete NULL不会报"doubl ...

  2. stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)

    STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...

  3. tensorflow学习笔记——多线程输入数据处理框架

    之前我们学习使用TensorFlow对图像数据进行预处理的方法.虽然使用这些图像数据预处理的方法可以减少无关因素对图像识别模型效果的影响,但这些复杂的预处理过程也会减慢整个训练过程.为了避免图像预处理 ...

  4. C++学习笔记之输入、输出和文件

    一.流的概念 数据从内存的一个地址移动到另一个地址称为数据流动——流操作 流操作是通过缓冲区(buffer)机制实现的. 缓冲区:内存的一块区域——用作文件与内存交换数据. 数据从文件中读出:文件 → ...

  5. C++ 学习笔记之——输入和输出

    在 C++ 中,我们通过调用输入输出流库中的流对象 cin 和 cout 来实现输入和输出. #include <iostream> using namespace std; int ma ...

  6. C++学习 - 虚表,虚函数,虚函数表指针学习笔记

    http://blog.csdn.net/alps1992/article/details/45052403 虚函数 虚函数就是用virtual来修饰的函数.虚函数是实现C++多态的基础. 虚表 每个 ...

  7. C++指针学习笔记

    本文参考http://www.prglab.com/cms/pages/c-tutorial/advanced-data/pointers.php 1.存储其它变量地址的变量(如下面例子中的addre ...

  8. Python基础学习笔记---5.输入\输出 I\O文件操作目录

    在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,你也可以使用多种 ...

  9. 深入理解C指针----学习笔记

      深入理解C指针     第1章 认识指针   理解指针的关键在于理解C程序如何管理内存,指针包含的就是内存地址.     1.1 指针和内存   C程序在编译后,以三种方式使用内存: 1. 静态. ...

随机推荐

  1. 【leetnode刷题笔记】Maximum Depth of binary tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  2. 20165101刘天野 2018-2019-2《网络对抗技术》Exp8 Web基础

    20165101刘天野 2018-2019-2<网络对抗技术>Exp8 Web基础 1.实验内容 1.1 Web前端HTML (1)输入命令service apache2 start启动A ...

  3. String类型的对象,是保存在堆里还是在栈里呢?

    在Java的实现中,new出来的String对象一般是放在堆中的. 如果是 String s ="xxx"; 这种,那就是放在常量池中. JDK6将常量池放在方法区中. 方法区此时 ...

  4. Docker-使用Dockerfile创建镜像

    Dockerfile是一个文本格式的配置文件,用户可以使用Docker来快速创建自定义的镜像 基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行 一般而言,Dockerfil ...

  5. Shiro-权限认证(授权)-编程式授权

    权限认证 权限认证也就是访问控制,即在应用中控制谁能访问哪些资源 权限认证核心要素 权限 : 即操作资源的权利,比如访问某个页面,以及对某个模块的数据的添加,修改,删除,查看的权利 角色 : 是权限的 ...

  6. 大话设计模式--中介者模式 Mediator --C++实现实例

    1. 中介者模式: 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立改变他们之间的交互. Mediator的出现减少了各个Colleague的耦 ...

  7. Codeforces 219D Choosing Capital for Treeland:Tree dp

    题目链接:http://codeforces.com/problemset/problem/219/D 题意: 给你一棵树,n个节点. 树上的边都是有向边,并且不一定是从父亲指向儿子的. 你可以任意翻 ...

  8. unity3D编辑器扩展

    编辑器扩展只是在编辑项目中运行,发布出来是不会运行的. 固定创建一个文件夹Editor:所有的资源或者代码都不会被打包进去. 01.使用MenuItem添加菜单栏按钮 脚本不需要作为组件存在,可以不用 ...

  9. Struts调用DMI

    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

  10. 十二 Django框架,自定义分页

    自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring import mark_safe #封装分页类模块 c ...