文件指针

文件流、指针偏移、流状态位 与圣经文件练习

一个人想着一个人 提交于 2020-01-17 19:23:53
文件流、指针偏移、流状态位与圣经文件练习 一.文件流 在文件流中, 定义的类型有: fstream 既可以是输入流也可以是输出流 ifstream 输入流 ofstream 输出流 在对文件进行操作前,需要以open的形式打开,第一个参数是filename, 第二个参数是mode mode 含义 ios::in 读方式 ios::out 写方式 ios::app 一般结合写方式,在文末尾进行追加 ios::ate 一般结合读方式,指针跳到末尾 ios::trunc 以截断方式打开,也就是将文件长度变为0 注意: 1.当定义 ifstream 时, 默认以 ios::in 打开; 2.当定义 ofstream 时, 默认以 ios::out|ios::trunc 打开; 向文本中写数据 //尝试向文本中写数据 void Write ( ) { ofstream fout ; fout . open ( "data.txt" , ios :: out | ios :: trunc ) ; //即使不写,ofstream生成的默认mode也是ios::|ios::trunc fout << "name:wk" << " age:21" << endl ; ofstream fout2 ; fout2 . open ( "data.txt" , ios :: app ) ; fout2 <

错题集

吃可爱长大的小学妹 提交于 2020-01-17 05:28:56
1.函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。 对。我的理解产生了错误。误以为返回值的是ascii码的大小。事实上int大于0则是1,小于则是-1。 2.数组名就是一个指针常量,指向数组的首元素(或者说代表了数组的首地址)。 错。数组名是地址,不是指针常量,它的值可以赋给指针。 3.有说明语句int a[4][5];,则a[2]+3表示 ( A) 。 A.a数组行下标为2、列下标为3的元素的地址 B.0a数组行下标为2、列下标为3的元素的值 C.a数组第2行的首地址 D.a数组第3行的首地址 a[2]表示地址。+3表示地址后移3个元素。 4.语句int *p; *p=50;执行时,不会有任何错误。 错。在执行时,*P没有值。printf不出来任何值。 5.对于以下结构定义,++p->str中的++加在 ( A) 。 struct { int len; char *str; } *p; A.指针str上 B.指针p上 C.str指的内容上 D.以上均不是 因为p->str是对指针str的引用。 6.在一个以 h 为头的单向链表中,p 指针指向链尾的条件是(A)。 A.p->next=h B.p->next=NULL C.p->next->next=h D.p->.data=-1 p

错题集

僤鯓⒐⒋嵵緔 提交于 2020-01-13 07:24:18
错题集 直接访问就是直接利用变量的地址直接进行访问。 (√) //直接访问就是系统直接将变量所在内存单元的值取出,间接访问是直接访问变量地址。 结构体类型本身不占用内存空间,结构体变量占用内存空间。 (√) // 结构体类型的定义只是告诉编译器该如何表示数据,但是它没有让计算机为其分配空间。结构体类型的定义就是结构体的声明,不管是定义还是申明,这句话都是正确的。只有在结构体变量,声明的时候可以分配。要使用结构体,那么就需要创建变量,也就是结构体变量。 文件指针用于指向文件,文件只有被打开后才有对应的文件指针。 (√) //文件指针是指向一个文件的指针,确切的将是指向用文件这个结构体所定义的对象的起始地址。 变量被定义后 , 它的作用域和寿命就被确定了 , 并且不可改变。 (√) //作用域就是一个变量可以被引用的范围,生命周期就是这个变量可以被引用的时间段。每个作用域都有相对应的生命周期,变量被定义后,作用域和生命周期就被确定了 , 并且不可改变。 两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。(√) //实际上是两个指针值(地址)相减之差再除以该数组元素的长度(字节数)。 在c语言中,不允许有常量的数据类型是(B ) A.整型 B.结构型 C.字符型 D.字符串 //结构型是基本数据类型的组合,没有单独的常量。 文件指针和位置指针都是随着文件的读写操作在不断改变

Python文件

拈花ヽ惹草 提交于 2020-01-13 00:53:08
01. 文件的存储方式 在计算机中,文件是以 二进制 的方式保存在磁盘上的 文本文件和二进制文件 文本文件 可以使用 文本编辑软件 查看 本质上还是二进制文件 例如:python 的源程序 二进制文件 保存的内容 不是给人直接阅读的,而是 提供给其他软件使用的 例如:图片文件、音频文件、视频文件等等 二进制文件不能使用 文本编辑软件 查看 02. 文件的基本操作 2.1 操作文件的套路 在 计算机 中要操作文件的套路非常固定,一共包含 三个步骤 : 打开文件 读、写文件 读 将文件内容读入内存 写 将内存内容写入文件 关闭文件 2.2 操作文件的函数/方法 在 Python 中要操作文件需要记住 1 个函数和 3 个方法 序号 函数/方法 说明 01 open 打开文件,并且返回文件操作对象 02 read 将文件内容读取到内存 03 write 将指定内容写入文件 04 close 关闭文件 open 函数负责打开文件,并且返回文件对象 read / write / close 三个方法都需要通过 文件对象 来调用 2.3 read 方法 —— 读取文件 open 函数的第一个参数是要打开的文件名(文件名区分大小写) 如果文件 存在 ,返回 文件操作对象 如果文件 不存在 ,会 抛出异常 read 方法可以一次性 读入 并 返回 文件的 所有内容 close 方法负责 关闭文件

C/C++中的const、static、inline、friend、template、virtual、异常机制等特性

徘徊边缘 提交于 2020-01-11 07:16:46
一、const const关键字的作用 (1)作用: 1)欲阻止一个变量被改变,可使用const,在定义该const变量时,需先初始化,以后就没有机会改变他了; 2)对指针而言,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const; 3)在一个函数声明中,const可以修饰形参表明他是一个输入参数,在函数内部不可以改变其值; 4)对于类的成员函数,有时候必须指定其为const类型,表明其是一个常函数,不能修改类的成员变量; 5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。 const修饰变量 变量的值不能改变 const修饰指针 如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量 如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量 指针常量:不能通过指针来修改变量的值。 常量指针:一直指向该变量,不能给该指针赋予其他地址 函数中使用const const修饰函数参数 表示参数不可变 若参数为引用,可以增加效率 const引用传递和函数按值传递的效果是一样的,但按值传递会先建立一个类对象的副本, 然后传递过去,而它直接传递地址,所以这种传递比按值传递更有效 const按值传递时只是外部对象的拷贝,值的改变不会对外部有什么影响

基于文件指针的文件操作

核能气质少年 提交于 2020-01-10 00:26:12
基于文件指针的文件操作(缓冲) linux的文件和文件描述符 linux中对目录和设备的操作都是文件操作,文件分为 普通文件,目录文件,链接文件和设备文件 。 普通文件 :也称磁盘文件,并且能够进行随机的数据存储 ( 能够自由 seek 定位到某一个位置 ) ; 管道: 是一个从一端发送数据,另一端接收数据的数据通道; 目录: 也称为目录文件,它包含了保存在目录中文件列表的简单文件。 设备: 该类型的文件提供了大多数物理设备的接口。它又分为两种类型: 字符型设备和块设备。 字符型设备 一次只能读出和写入一个字节的数据,包括调制解调器、终端、打印机、声卡以及鼠标; 块设备 必须以一定大小的块来读出或者写入数据,块设备包括 CD-ROM 、 RAM 驱动器和磁盘驱动器等 ,一般而言,字符设备用于传输数据,块设备用于存储数据。 链接: 类似于 Windows 的快捷方式和 Linux 里的别名,指包含到达另一个 文件路径的文件。 套接字: 在 Linux 中 , 套接字也可以当作文件来进行处理。 基于文件指针的文件操作函数是ANSI 标准函数库 的一部分。 1文件的创建,打开与关闭 原型为: #include <stdio.h> //头文件包含 FILE *fopen(const char *pach,const char *mode); //文件名 模式 int fclose(FILE

mpi4py 中的访问文件数据方法

邮差的信 提交于 2020-01-09 23:28:15
在 上一篇 中我们介绍了 mpi4py 中的并行文件视图操作方法,下面我们将介绍访问文件数据的相关方法。 文件访问方法 MPI 环境下应用程序对文件的访问主要有 3 种特征:定位(positioning),包括显式偏移和隐式文件指针;同步性(synchronism),主要包括阻塞、非阻塞和分步集合操作;集合性(coordination),主要包括非集合操作和集合操作。下表列出的相应的访问方法(MPI.File 类方法)反应了这些操作特征的组合,其中结合了两种类型的文件指针——独立文件指针和共享文件指针。 文件访问方法 上表中访问文件数据的方法很多,不能在此一一详细介绍,但是它们根据访问文件的特征却有其规律性,下面我们介绍 3 种访问特征的具体含义和数据访问的基本规范: 定位(positioning) MPI 中的文件定位有 3 种:显式偏移(explicit offset)、独立文件指针(individual file pointers)和共享文件指针(shared file pointers),相同进程中可混合使用这 3 种操作方式,彼此无影响。 所有使用显式指针的方法,其命名中都包含 “_at“ 字符,使用显式指针访问数据时,其参数为直接指定的文件偏移位置,而不必再通过任何文件指针,也与文件视图中的相对偏移位置无关。 注意 :这里使用偏移不需要执行 seek 操作。

寒江独钓(2):串口的过滤

烈酒焚心 提交于 2020-01-09 17:01:31
一、过滤的概念   “过滤”(filter)是极其重要的一个概念。过滤是在不影响上层和下层接口的情况下,在Windows系统内核中加入新的层,从而 不需要修改上层的软件或者下层的真实驱动程序,就加入了新的功能。 二、绑定设备的内核Api之一   通过编程可以生成一个虚拟的设备对象,并“绑定”(Attach)在一个真实的设备上。一旦绑定,则本来操作系统发送给真实设备 的请求,就会首先发送到这个虚拟设备。   在WDK中,有多个内核API能 实现绑定功能 。下面是其中一个函数的原型: NTSTATUSIoAttachDevice(IN PDEVICE_OBJECT SourceDevice,IN PUNICODE_STRING TargetDevice,OUT PDEVICE_OBJECT *AttachedDevice);   IoAttachDevice参数如下:      SourceDevice 是调用者生成的用来过滤的虚拟设备;      TargetDevice 是要被绑定的目标设备。请注意这里的 TargetDevice并不是一个PDEVICE_OBJECT(DEVICE_OBJECT   是设备对象的数据结构,以P开头的是其指针),而是一个字 符串(在驱动开发中字符串用UNICODE_STRING来表示)。实际上,   这个字符串是要被绑定的设备的名字

【PHP】文件写入和读取详解

自闭症网瘾萝莉.ら 提交于 2020-01-05 23:52:53
文章提纲: 一.实现文件读取和写入的基本思路 二.使用fopen方法打开文件 三.文件读取和文件写入操作 四.使用fclose方法关闭文件 五.文件指针的移动 六.Windows和UNIX下的回车和换行 一.实现文件读取和写入的基本思路: 1.通过fopen方法打开文件:$fp =fopen(/*参数,参数*/),fp为Resource类型 2.进行文件读取或者文件写入操作(这里使用的函数以1中返回的$fp作为参数) 3. 调用fclose($fp)关闭关闭文件 二:使用fopen方法打开文件 fopen(文件路径[string],打开模式[string]) <1>fopen的第一个参数为文件路径 写文件路径的方式:1绝对路径,2相对路径 1绝对路径: 在windows下工作的小伙伴们应该很熟悉,windows下的路径分隔符是“\”而不是“/”,但我们在写入路径时不能以钦定的“\”为分隔符 那如果我们以“\”分隔符写入路径会怎样呢? <?php $fp = fopen("C:\wamp64\www\text.txt",'w'); ?> 运行后报错,提示路径参数无效 所以我们要把分隔符“\”换成“/”: <?php $fp = fopen("C:/wamp64/www/text.txt",'w'); ?> 运行时无报错,说明参数是有效的。 【注意】fopen函数不能理解“\”分隔符

C++文件读写详解(ofstream,ifstream,fstream)

删除回忆录丶 提交于 2019-12-29 04:44:35
C++文件读写详解(ofstream,ifstream,fstream)    这里主要是讨论fstream的内容: 1 #include <fstream> 2 ofstream //文件写操作 内存写入存储设备 3 ifstream //文件读操作,存储设备读区到内存中 4 fstream //读写操作,对打开的文件可进行读写操作 1、打开文件    在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作    函数:open() 1 public member function 2 3 void open ( const char * filename, 4 ios_base::openmode mode = ios_base::in | ios_base::out ); 5 6 void open(const wchar_t *_Filename, 7 ios_base::openmode mode= ios_base::in | ios_base::out, 8 int prot = ios_base::_Openprot); 9 /* 10 参数:filename 操作文件名 11 mode 打开文件的方式 12 prot 打开文件的属性 //基本很少用到