<c和指针>学习笔记6输入输出函数
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输入输出函数的更多相关文章
- C++中的智能指针、轻量级指针、强弱指针学习笔记
一.智能指针学习总结 1.一个非const引用无法指向一个临时变量,但是const引用是可以的! 2.C++中的delete和C中的free()类似,delete NULL不会报"doubl ...
- stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...
- tensorflow学习笔记——多线程输入数据处理框架
之前我们学习使用TensorFlow对图像数据进行预处理的方法.虽然使用这些图像数据预处理的方法可以减少无关因素对图像识别模型效果的影响,但这些复杂的预处理过程也会减慢整个训练过程.为了避免图像预处理 ...
- C++学习笔记之输入、输出和文件
一.流的概念 数据从内存的一个地址移动到另一个地址称为数据流动——流操作 流操作是通过缓冲区(buffer)机制实现的. 缓冲区:内存的一块区域——用作文件与内存交换数据. 数据从文件中读出:文件 → ...
- C++ 学习笔记之——输入和输出
在 C++ 中,我们通过调用输入输出流库中的流对象 cin 和 cout 来实现输入和输出. #include <iostream> using namespace std; int ma ...
- C++学习 - 虚表,虚函数,虚函数表指针学习笔记
http://blog.csdn.net/alps1992/article/details/45052403 虚函数 虚函数就是用virtual来修饰的函数.虚函数是实现C++多态的基础. 虚表 每个 ...
- C++指针学习笔记
本文参考http://www.prglab.com/cms/pages/c-tutorial/advanced-data/pointers.php 1.存储其它变量地址的变量(如下面例子中的addre ...
- Python基础学习笔记---5.输入\输出 I\O文件操作目录
在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,你也可以使用多种 ...
- 深入理解C指针----学习笔记
深入理解C指针 第1章 认识指针 理解指针的关键在于理解C程序如何管理内存,指针包含的就是内存地址. 1.1 指针和内存 C程序在编译后,以三种方式使用内存: 1. 静态. ...
随机推荐
- jquery的ajax(err)
load()方法 load()方法是jquery中最为简单和常用的ajax方法. 直接使用ajax技术的流程 1.创建xmlhttprequest对象 2.调用open函数("提交方式&qu ...
- 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置
Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...
- 4 Python 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...
- Cookie是以文本文件保存在客户端的,所以说cookie对象从本质而言是 字符串,所以取值时用字符串,或其数组
- Java读取文件的时候,如何让指针重新回到文件的开头
今天在测试IO流的使用的时候发现在reader读取文件之后,再向文件添加内容,再继续读文件,打印出的结果只能读取追加的文件. 如何才能重新读取呢?试了mark和reset,似乎会报异常.记在这以后看是 ...
- python 标准库 —— http(http.cookiejar)
1. cookie 信息的读取 from urllib import request import http from http import cookiejar cookie = cookiejar ...
- Convolutional Neural Networks for Visual Recognition 8
Convolutional Neural Networks (CNNs / ConvNets) 前面做了如此漫长的铺垫,现在终于来到了课程的重点.Convolutional Neural Networ ...
- xdebug浏览器调试参数
XDEBUG_SESSION_START=phpstorm-xdebug 找到对应PHP版本的 Xdebug ,后面带 TS 的为线程安全,本机环境为 win7 64 + php-5.5.1-Win3 ...
- 每天一个linux命令(10):touch命令
版权声明更新:2017-05-14博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...
- Cg与RenderMonkey 之旅
http://news.mydrivers.com/1/15/15020_all.htm [前言] 您可能还没有意识到---您手头的这块显卡(或者说这块GPU)---它不仅仅是一个应用工具(游戏.平面 ...