函数fseek() 用法

合集下载

PHP常用库函数

PHP常用库函数

函数描述:obj dir(string directory);返回值:函数返回一个目录对象,该对象有两个属性:句柄和路径。

句柄可被其他目录函数使用,路径是用来生成目录对象的字符串。

如果出错,则返回false(0)。

Fclose函数描述:int fclose(int file_handle);说明:此函数关闭一个已打开的文件。

参数file_handle为一个文件被打开时产生的句柄。

返回值:如果关闭成功,返回true(1);否则,返回false(0)。

Feof函数描述:int feof(int file_handle);说明:在读取文件时,PHP始终保持一个指向该文件末尾的指针。

函数feof用以确定读取指针是否已到达文件末尾。

返回值:若文件读取指针达到文件末尾,函数feof返回ture(1);否则返回false(0)。

Fgetc函数描述:string fgetc(int file_handle);说明:参数file_handle 是一个文件被打开时产生的句柄。

返回值:函数fgetc从一个已经对打开的文件中读取一个单个字符。

如出错,则返回false(0)。

Fgets函数描述:string fgets(int file_handle, int length);返回值:返回从文件中读取的字符串,文件由文件句柄file_handle指定,读取长度将根据length-1尽可能的读取字符,支行结束或文章末尾。

若出错,则返回false(0)。

Fgetss函数描述:string fgetss(int file_handle,int length);返回值:与fgets相类似,只是在返回字符串时,试着剥去HTML或PHP代码。

File函数描述:array file(string filename);返回值:函数返回一个数组,数组的元素一次是文件的每一行,数组下标从开始。

若出错,则返回false(0).File_exists函数描述:int file_exists(string filename);说明:此函数用来确定文件是否存在。

2011年计算机等级二级C语言章节习题及答案(13)

2011年计算机等级二级C语言章节习题及答案(13)

2011年计算机等级二级C语言章节习题及答案(13)2011年计算机等级二级C语言章节习题及答案(13)第13章文件一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。

)13.1 fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B13.2 若fp是指向某文件的指针,且已读到文件末尾,则函数feof (f p)的返回值是A)EOFB)-1C)1D)NULL正确答案: C13.3 fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D13.4 下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D13.5 函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对正确答案: B13.6 C语言中,能识别处理的文件为A)文本文件和数据块文件B)文本文件和二进制文件C)流文件和文本文件D)数据文件和二进制文件正确答案: B13.7 若调用fputc函数输出字符成功,则其返回值是A)EOFB)1C)0D)输出的字符正确答案: D13.8 已知函数的调用形式:fread(buf,size,count,fp),参数buf 的含义是A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项正确答案: C13.9 当顺利执行了文件关闭操作时,fclose函数的返回值是A)-1B)TRUEC)0D)1正确答案: C13.10 如果需要打开一个已经存在的非空文件“Demo”进行修改下面正确的选项是A)fp=fopen("Demo","r");B)fp=fopen("Demo","ab+");C)fp=fopen("Demo","w+");D)fp=fopen("Demo","r+");正确答案: D13.11 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是A)fopen("A:\user\abc.txt","r")B)fopen("A:\\user\\abc.txt","rt+")C)fopen("A:\user\abc.txt","rb")D)fopen("A:\user\abc.txt","w")正确答案: B13.12 fwrite函数的一般调用形式是A)fwrite(buffer,count,size,fp);B)fwrite(fp,size,count,buffer);C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp);正确答案: D13.13 C语言中,文件组成的基本单位为A)记录B)数据行C)数据块D)字符序列正确答案: D13.14 C 语言中,系统的标准输入文件是指A)键盘B)显示器C)软盘D)硬盘正确答案: A13.15 有以下程序#includemain(){ FILE *fp; int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);fclose(fp);}程序运行后的输出结果是A)20 30B)20 50C)30 50D)30 20正确答案: A13.16 阅读以下程序及对程序功能的描述,其中正确的描述是#includemain(){ FILE *in,*out;char ch,infile[10],outfile[10];printf("Enter the infile name:\n");scanf("%s",infile);printf("Enter the outfile name:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){ printf("cannot open infile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){ printf("cannot open outfile\n");exit(0);}while(! feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A)程序完成将磁盘文件的信息在屏幕上显示的功能B)程序完成将两个磁盘文件合二为一的功能C)程序完成将一个磁盘文件复制到另一个磁盘文件中D)程序完成将两个磁盘文件合并并在屏幕上输出正确答案: C13.17 下面的程序执行后,文件test中的内容是#includevoid fun(char *fname,char *st){ FILE *myf; int i;myf=fopen(fname,"w" );for(i=0;ifclose(myf);}main(){ fun("test","new world"); fun("test","hello,");} A)hello, B)new worldhello,C)new worldD)hello, rld正确答案: A13.18 假定当前盘符下有两个文本文件,如下文件名a1.txt a2.txt内容123# 321#则下面程序段执行后的结果为#include "stdio.h"void fc(FILE *p){ char c;while((c=fgetc(p))!=′#′)putchar(C);}main(){ FILE *fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar(′\n′);}A)123321B)123C)321D)以上答案都不正确正确答案: A13.19 阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp;int a[10],*p=a;fp=fopen("a123.txt","w");while(strlen(gets(p))>0 ){ fputs(a,fp);fputs("\n",fp);}fclose(fp);}A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt 中B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中C)从键盘输入若干行字符,第一行写入文本文件a123.txt中D)从键盘输入若干行字符,依次写入文本文件a123.txt中正确答案: D13.20 阅读下面程序,此程序的功能为#include "stdio.h"main(int argc,char *argv[]){ FILE *p1,*p2;int c;p1=fopen(argv[1],"r");p2=fopen(argv[2],"a");c=fseek(p2,0L,2);while((c=fgetc(p1))!=EOF)fputc(c,p2);fclose(p1);fclose(p2);}A)实现将p1打开的文件中的内容复制到p2打开的文件B)实现将p2打开的文件中的内容复制到p1打开的文件C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后正确答案: C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。

matlab文件操作fopenfseekfreadfclose等

matlab文件操作fopenfseekfreadfclose等

文件操作是‎一种重要的‎输入输出方‎式,即从数据文‎件读取数据‎或将结果写‎入数据文件‎。

MATLA‎B提供了一‎系列低层输‎入输出函数‎,专门用于文‎件操作。

1、文件的打开‎与关闭1)打开文件在读写文件‎之前,必须先用f‎o pen函‎数打开或创‎建文件,并指定对该‎文件进行的‎操作方式。

fopen‎函数的调用‎格式为:fid=fopen‎(文件名,…打开方式‟)说明:其中fid‎用于存储文‎件句柄值,如果返回的‎句柄值大于‎0,则说明文件‎打开成功。

文件名用字‎符串形式,表示待打开‎的数据文件‎。

常见的打开‎方式如下:…r‟:只读方式打‎开文件(默认的方式‎),该文件必须‎已存在。

λ…r+‟:读写方式打‎开文件,打开后先读‎后写。

该文件必须‎已存在。

λ…w‟:打开后写入‎数据。

该文件已存‎在则更新;不存在则创‎建。

λ…w+‟:读写方式打‎开文件。

先读后写。

该文件已存‎在则更新;不存在则创‎建。

λ…a‟:在打开的文‎件末端添加‎数据。

文件不存在‎则创建。

λ…a+‟:打开文件后‎,先读入数据‎再添加数据‎。

文件不存在‎则创建。

λ另外,在这些字符‎串后添加一‎个“t”,如…rt‟或…wt+‟,则将该文件‎以文本方式‎打开;如果添加的‎是“b”,则以二进制‎格式打开,这也是fo‎p en函数‎默认的打开‎方式。

2)关闭文件文件在进行‎完读、写等操作后‎,应及时关闭‎,以免数据丢‎失。

关闭文件用‎f clos‎e函数,调用格式为‎:sta=fclos‎e(fid)说明:该函数关闭‎f id所表‎示的文件。

sta表示‎关闭文件操‎作的返回代‎码,若关闭成功‎,返回0,否则返回-1。

如果要关闭‎所有已打开‎的文件用f‎c lose‎(…all‟)。

2、二进制文件‎的读写操作‎1)写二进制文‎件fwrit‎e函数按照‎指定的数据‎精度将矩阵‎中的元素写‎入到文件中‎。

其调用格式‎为:COUNT‎=fwrit‎e(fid,A,preci‎s ion)说明:其中COU‎N T返回所‎写的数据元‎素个数(可缺省),fid为文‎件句柄,A用来存放‎写入文件的‎数据,preci‎s ion代‎表数据精度‎,常用的数据‎精度有:char、uchar‎、int、long、float‎、doubl‎e等。

linux中text函数族的用法

linux中text函数族的用法

linux中text函数族的用法在Linux中,text函数族是一组用于处理文本文件的函数。

这些函数提供了一种方便有效的方式来操作文本文件,包括读取、写入、查找和修改。

在本篇文章中,我将详细介绍Linux中text函数族的用法。

1. fopen函数:fopen函数用于打开一个文本文件,并返回一个指向该文件的指针。

它有两个参数,文件名和打开模式。

打开模式可以是读取模式("r")、写入模式("w")或追加模式("a")。

以下是fopen函数的示例用法:cFILE *file = fopen("example.txt", "r");if (file == NULL) {printf("文件打开失败\n");return 1;}2. fgets函数:fgets函数用于从文本文件中读取一行内容,并将其存储在一个字符数组中。

它有三个参数,第一个是用于存储读取的内容的字符数组,第二个是要读取的最大字符数,第三个是文件指针。

以下是fgets函数的示例用法:cchar buffer[100];while (fgets(buffer, sizeof(buffer), file) != NULL) {printf("%s", buffer);}3. fputs函数:fputs函数用于将一个字符串写入到文本文件中。

它有两个参数,第一个是要写入的字符串,第二个是文件指针。

以下是fputs函数的示例用法:cfputs("Hello, World!", file);4. fseek函数:fseek函数用于移动文件指针到指定位置。

它有三个参数,第一个是文件指针,第二个是要移动的字节数,第三个是起始位置。

起始位置可以是文件开头(SEEK_SET)、当前位置(SEEK_CUR)或文件末尾(SEEK_END)。

C语言文件操作命令

C语言文件操作命令

C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。

返回值fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文件 #include<stdio.h>定义函数 int fclose(FILE * stream);函数说明 fclose()用来关闭先前fopen()打开的文件。

此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。

返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。

错误代码 EBADF表示参数stream非已打开的文件。

范例请参考fopen()。

fdopen(将文件描述词转为文件指针)相关函数 fopen,open,fclose表头文件 #include<stdio.h>定义函数 FILE * fdopen(int fildes,const char * mode);函数说明 fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。

参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。

关于mode 字符串格式请参考fopen()。

返回值转换成功时返回指向该流的文件指针。

失败则返回NULL,并把错误代码存在errno中。

范例#include<stdio.h>main(){FILE * fp =fdopen(0,”w+”);fprintf(fp,”%s\n”,”hello!”);fclose(fp);}执行 hello!feof(检查文件流是否读到了文件尾)相关函数 fopen,fgetc,fgets,fread表头文件 #include<stdio.h>定义函数 int feof(FILE * stream);函数说明 feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。

c语言 文件操作函数

c语言 文件操作函数

c语言文件操作函数C语言文件操作函数C语言文件操作函数是C语言提供的一种文件操作方式,可以通过这些函数来读取、写入和修改文件。

文件操作函数可以帮助我们完成很多与文件有关的任务,比如读取配置文件、保存用户数据等。

在本文中,将介绍C语言中常用的文件操作函数。

打开文件在C语言中,我们可以使用fopen()函数来打开一个文件。

该函数的原型如下:FILE *fopen(const char *filename, const char *mode);其中,filename表示要打开的文件名,mode表示打开文件的模式。

mode的取值如下:- "r":以只读方式打开文件- "w":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据- "r+":以读写方式打开文件,文件必须存在- "w+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据例如,我们可以使用以下代码来打开一个名为example.txt的文件:FILE *fp;fp = fopen("example.txt", "w+");if (fp == NULL) {printf("Open file failed!\n");}在打开文件之后,我们可以使用fclose()函数来关闭文件,释放文件资源。

例如:fclose(fp);读取文件在C语言中,我们可以使用fscanf()函数从文件中读取数据。

该函数的原型如下:int fscanf(FILE *stream, const char *format, ...);其中,stream表示要读取数据的文件,format表示数据的格式。

C语言中的文件操作与输入输出流

C语言中的文件操作与输入输出流

C语言中的文件操作与输入输出流文件处理是程序设计中常见的操作之一,而在C语言中,文件操作函数和输入输出流是实现文件处理的主要手段。

本文将介绍C语言中文件操作与输入输出流的基本概念、函数和使用方法。

一、文件操作概述在C语言中,文件被看作是一系列按顺序排列的字节。

文件的打开、读取、写入和关闭都是通过相应的函数来实现的。

C语言提供了一系列的文件操作函数,其中最常用的包括:文件打开函数(fopen)、文件关闭函数(fclose)、文件读取函数(fread)、文件写入函数(fwrite)和文件定位函数(fseek)等。

二、文件打开与关闭文件的打开和关闭是文件操作的基础。

通过文件打开函数(fopen),我们可以打开一个指定的文件,并返回一个文件指针,以便后续对文件的读取和写入操作。

文件关闭函数(fclose)则用于关闭一个已打开的文件。

例如,下面的代码演示了如何打开和关闭一个文件:```c#include <stdio.h>int main() {FILE *file = fopen("example.txt", "r");if (file == NULL) {printf("文件打开失败\n");return 1;}// 对文件的读取和写入操作fclose(file);return 0;}```三、文件读取与写入文件读取与写入是文件操作中常用的功能。

C语言提供了一系列的文件读取函数和文件写入函数,可以根据不同的需求调用适当的函数来完成操作。

常用的文件读取函数包括:getchar(从标准输入读取一个字符)、fgetc(从指定文件读取一个字符)、fgets(从指定文件读取一行字符串)、fscanf(从指定文件读取格式化数据)等。

常用的文件写入函数包括:putchar(向标准输出写入一个字符)、fputc(向指定文件写入一个字符)、fputs(向指定文件写入一行字符串)、fprintf(向指定文件写入格式化数据)等。

c语言中fseek选择题

c语言中fseek选择题

c语言中fseek选择题在C语言中,`fseek()`函数用于改变文件的位置指针的位置。

以下是一些关于`fseek()`的常见选择题:1. `fseek()`函数的原型是:A. `int fseek(FILE stream, int offset, int whence);`B. `int fseek(FILE stream, long offset, int whence);`C. `void fseek(FILE stream, long offset, int whence);`D. `long fseek(FILE stream, long offset, int whence);`答案:B。

2. 在`fseek()`函数中,`whence`参数的值是:A. 文件位置指针的当前位置B. 文件位置指针的起始位置C. 文件位置指针的结束位置D. 文件的大小答案:B。

3. 如果要在文件内部移动文件位置指针,应将`whence`参数设置为:A. `SEEK_SET`B. `SEEK_CUR`C. `SEEK_END`D. 以上都可以答案:A。

4. 如果要在文件开头和文件尾部之间移动文件位置指针,应将`whence`参数设置为:A. `SEEK_SET`B. `SEEK_CUR`C. `SEEK_END`D. 以上都可以答案:C。

5. 如果要在文件内部移动文件位置指针,并将偏移量设置为0,应将偏移量参数设置为:A. 0B. `ftell()`函数的返回值C. `fsize()`函数的返回值D. `fread()`函数的返回值答案:A。

keil查找函数

keil查找函数

keil查找函数Keil是一款嵌入式开发工具,提供了许多函数来支持程序的开发和调试。

下面将介绍一些常用的Keil函数和其功能,总字数超过了1200个字。

1. printf函数:printf函数用于输出格式化字符串。

在Keil开发环境下,可以使用printf输出到显示器或者串口。

例如,使用printf("Hello World\n")会将字符串"Hello World"输出到屏幕上。

2. scanf函数:scanf函数用于从标准输入中读取格式化数据。

在Keil开发环境下,可以使用scanf从键盘或者串口接收数据。

例如,使用scanf("%d", &num)会从输入中读取一个整数,并将其存储在num变量中。

3. delay函数:delay函数用于创建延时。

在嵌入式系统中,需要根据需要创建一定的延时以实现一些功能,例如控制LED闪烁。

Keil提供了delay函数来实现延时。

例如,使用delay(1000)会在程序执行到该处时延时1秒。

4. strcpy函数:strcpy函数用于复制字符串。

在Keil开发环境下,可以使用strcpy函数将一个字符串复制到另一个字符串。

例如,使用strcpy(destination, source)会将source字符串复制到destination字符串中。

5. strcat函数:strcat函数用于连接字符串。

在Keil开发环境下,可以使用strcat函数将两个字符串连接在一起。

例如,使用strcat(destination, source)会将source字符串连接到destination字符串的末尾。

6. strcmp函数:strcmp函数用于比较两个字符串。

在Keil开发环境下,可以使用strcmp函数比较两个字符串的大小关系。

例如,使用strcmp(str1, str2)会比较str1和str2的大小关系,如果str1大于str2,则返回一个正值;如果str1等于str2,则返回0;如果str1小于str2,则返回一个负值。

自考《高级语言程序设计》知识点总结(八)(3)

自考《高级语言程序设计》知识点总结(八)(3)

自考《高级语言程序设计》知识点总结(八)(3)4. 数据成块输入/输出函数为加快程序的处理速度,程序可以成批地读人文件中的数据,也可成批地写数据到文件。

它们是函数fread()和fwrite()。

成批读函数fread()的说明形式为int fread(char *buf,int size,int count,FILE *rfp);成批写函数fwrite() 的说明形式为int fwrite( char *buf,int size,int count,FILE *wfp);其中,buf是字符数组首元指针。

对fread()来说,它是读人数据的存放开始地址;对bote()来说,是要输出数据的开始地址。

size是读写的数据块的字节数。

count为要进行读写的数据块的个数。

rfp和wfp为文件指针。

调用上述函数共读写size. count个字节或字符。

函数fread()和fwrite()的返回值是实际完成输入或输出的数据块的个数。

一般情况下,输出调用成功,返回值为count的值。

如果是读写二进制文件,用函数fread()和fwrite()可以读写任何类型的信息。

如有一个如下形式的通信录结构类型:typedef struct {char name[21]; /* 名字*/char phone[15]; /* 电话*/char zip[10]; /* 邮编*/char addr[31]; /* 地址*/} infoType;利用类型infoType,可定义数组,如:infoType info[30];表示结构数组info[]能存放30个通信录数据。

而下面的两个函数调用能别离实现20个通信录信息从某文件读出和写入某文件:fread( info,sizeof(infoType),20,rfp);fwrite( info,sizeo(infoType),20,wfp);5.格式输入/输出库函数与用函数scanf()从标准设备输入和用函数printf()向标准设备输出一样,一般文件也可进行格式输入和格式输出。

matlab文件操作fopen,fseek,fread,fclose等

matlab文件操作fopen,fseek,fread,fclose等

文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。

MATLAB提供了一系列低层输入输出函数,专门用于文件操作。

1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。

fopen函数的调用格式为:fid=fopen(文件名,…打开方式‟)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。

文件名用字符串形式,表示待打开的数据文件。

常见的打开方式如下:…r‟:只读方式打开文件(默认的方式),该文件必须已存在。

λ…r+‟:读写方式打开文件,打开后先读后写。

该文件必须已存在。

λ…w‟:打开后写入数据。

该文件已存在则更新;不存在则创建。

λ…w+‟:读写方式打开文件。

先读后写。

该文件已存在则更新;不存在则创建。

λ…a‟:在打开的文件末端添加数据。

文件不存在则创建。

λ…a+‟:打开文件后,先读入数据再添加数据。

文件不存在则创建。

λ另外,在这些字符串后添加一个“t”,如…rt‟或…wt+‟,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。

2)关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。

关闭文件用fclose函数,调用格式为:sta=fclose(fid)说明:该函数关闭fid所表示的文件。

sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。

如果要关闭所有已打开的文件用fclose(…all‟)。

2、二进制文件的读写操作1)写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。

其调用格式为:COUNT=fwrite(fid,A,precision)说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。

函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结字符串读写函数fgets和fputs一、读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:fgets(字符数组名,n,文件指针);其中的n是一个正整数。

表示从文件中读出的字符串不超过n-1个字符。

在读入的最后一个字符后加上串结束标志'\0'。

例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入字符数组str中。

[例10.4]从e10_1.c文件中读入一个含10个字符的字符串。

#include<stdio.h>main(){FILE *fp;char str[11];if((fp=fopen("e10_1.c","rt"))==NULL){printf("Cannot open file strike any key exit!");getch();exit(1);}fgets(str,11,fp);printf("%s",str);fclose(fp);}本例定义了一个字符数组str共11个字节,在以读文本文件方式打开文件e101.c后,从中读出10个字符送入str数组,在数组最后一个单元内将加上'\0',然后在屏幕上显示输出str数组。

输出的十个字符正是例10.1程序的前十个字符。

对fgets函数有两点说明:1. 在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。

2. fgets函数也有返回值,其返回值是字符数组的首地址。

二、写字符串函数fputsfputs函数的功能是向指定的文件写入一个字符串,其调用形式为:fputs(字符串,文件指针) 其中字符串可以是字符串常量,也可以是字符数组名,或指针变量,例如:fputs(“abcd“,fp);其意义是把字符串“abcd”写入fp所指的文件之中。

c语言中必不可少的函数

c语言中必不可少的函数

c语言中必不可少的函数在C语言中,有一些函数被认为是必不可少的,它们是开发者们在日常编程中经常使用的基本函数。

这些函数包括库函数、系统函数和用户自定义函数。

下面将介绍一些C语言中必不可少的函数。

1. printf(函数:这是C语言中最常用的输出函数,它用于按指定格式将数据输出到标准输出设备(通常是屏幕)上。

2. scanf(函数:与printf(函数相对应的是scanf(函数,它用于从标准输入设备(通常是键盘)获取用户输入的数据,并按指定格式存储到变量中。

3. malloc(函数:它是C语言中的动态内存分配函数。

通过malloc(函数可以在程序运行时动态地分配指定大小的内存空间,并返回一个指向该空间的指针。

4. free(函数:与malloc(函数对应的是free(函数,它用于释放通过malloc(函数分配的动态内存空间,在不再需要使用该空间时必须调用该函数。

5. strcpy(函数:它用于将一个字符串(包括字符串的结束标志'\0')复制到另一个字符串中。

6. strlen(函数:它用于获取一个字符串的长度,即该字符串的字符数(不包括结束标志'\0')。

7. strcmp(函数:它用于比较两个字符串的大小关系,若两个字符串相等则返回0,若第一个字符串大于第二个字符串则返回正数,若第一个字符串小于第二个字符串则返回负数。

8. fopen(函数:它用于打开一个文件,并返回一个指向该文件的指针,以供后续的读写操作。

9. fclose(函数:与fopen(函数对应的是fclose(函数,用于关闭一个已打开的文件。

10. fseek(函数:它用于在文件中移动文件指针的位置,从而定位文件中的某个位置进行读写操作。

11. int main(函数:在C语言程序中,必须定义一个名为main(的函数作为程序的入口点,程序的执行从main(函数开始。

除了上述库函数和系统函数外,C语言还允许开发者定义自己的函数。

vs文件操作函数

vs文件操作函数

在Visual Studio (VS) 中,您可能会遇到一些文件操作函数,这些函数用于读取和写入文件。

以下是一些常用的文件操作函数:fopen:此函数用于打开一个文件。

它需要两个参数:一个字符串,该字符串表示文件的路径和名称,以及一个模式字符串,该字符串指定您打算如何使用该文件。

例如:FILE *fopen(const char *path, const char *mode);fread:此函数用于从文件中读取数据。

它需要四个参数:一个指向要存储读取数据的内存位置的指针,要读取的元素大小,要读取的元素数量,以及一个指向打开文件的指针。

例如:size_t fread(void *ptr, size_t size, size_t count, FILE *stream);fwrite:此函数用于将数据写入文件。

它需要四个参数:一个指向要写入的数据的指针,要写入的元素大小,要写入的元素数量,以及一个指向打开文件的指针。

例如:size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);fclose:此函数用于关闭已打开的文件。

它需要一个参数:一个指向打开文件的指针。

例如:int fclose(FILE *stream);fseek:此函数用于移动文件的读/写指针到指定的位置。

它需要三个参数:一个指向打开文件的指针,偏移量,以及起始位置。

例如:int fseek(FILE *stream, long offset, int whence);ftell:此函数用于返回当前文件读/写指针的位置。

它需要一个参数:一个指向打开文件的指针。

例如:long ftell(FILE *stream);。

c语言中读取文件大小的函数

c语言中读取文件大小的函数

c语言中读取文件大小的函数【实用版】目录1.C 语言中文件的概念和操作2.读取文件大小的函数3.fopen 函数4.fseek 函数5.ftell 函数6.fclose 函数7.示例代码正文一、C 语言中文件的概念和操作在 C 语言中,文件被视为一个字符序列,可以使用不同的函数对其进行操作。

文件操作主要包括打开、读取、写入、关闭等。

二、读取文件大小的函数要读取文件大小,可以使用以下三个函数:1.fopen 函数:用于打开文件。

该函数需要两个参数,分别是文件路径和打开模式。

打开模式可以是只读(r)、写入(w)或追加(a)等。

2.fseek 函数:用于设置文件指针的位置。

该函数需要三个参数,分别是文件指针、位置和基准位置。

基准位置可以是文件开头(0)、文件末尾(2)或当前位置(1)。

3.ftell 函数:用于获取文件指针的位置。

该函数只需要一个参数,即文件指针。

三、示例代码下面是一个读取文件大小的示例代码:```c#include <stdio.h>#include <stdlib.h>int main() {FILE *file;long long size;file = fopen("example.txt", "r");if (file == NULL) {printf("Error: cannot open file. ");exit(1);}fseek(file, 0, SEEK_END);size = ftell(file);fclose(file);printf("File size: %lld bytes.", size);return 0;}```在这个示例中,我们首先使用 fopen 函数以只读模式打开名为“example.txt”的文件。

然后使用 fseek 函数将文件指针移动到文件末尾,接着使用 ftell 函数获取文件指针的位置,该位置即为文件大小。

FoxPro低级文件控制

FoxPro低级文件控制

FoxPro 低级文件控制低级文件控制主要有以下几种:_TEXT系统内存变量,FCHSIZE(),FCLOSE(),FCREATE(),FFLUSH(),FGETS() function,FOPEN(),FPUTS,FREAD(),FWRITE()。

具体的使用方法,参考如下:_TEXT 系统内存变量把“\|\\”和TEXT ... ENDTEXT 文本合并命令的结果输出到低级文件中。

语法_TEXT = nFileHandle参数nFileHandle指定一个数值,该数值确定输出的低级文件。

说明\|\\ 和TEXT ... ENDTEXT 能很容易地把表的内容、内存变量以及函数和表达式的结果合并到文本中。

由这些文本合并命令所产生的结果可以输出到屏幕或窗口或低级文件中,_TEXT 系统内存变量可以把文本合并命令的结果输出到低级文件中。

要把“\|\\”和TEXT ... ENDTEXT 文本合并命令的结果输出到低级文件中,需要在SET TEXTMERGE 命令中加入TO fileName 子句,FileName的文件句柄保存在_TEXT 变量中。

如果在_TEXT 中已存有另一个低级文件的句柄,则关闭该低级文件。

用FCREATE( ) 函数创建并打开低级文件,用FOPEN( ) 函数打开已存在的低级文件。

当文件成功地创建或打开时,这两个函数返回一个正的文件句柄。

把该文件句柄保存在_TEXT 中,将把“\|\\”和TEXT ... ENDTEXT 文本合并命令的任意结果连续输出到该文件中。

使用STORE 或=可以把文件句柄存入_TEXT 中。

打开的低级文件必须具有写特权,以便接收文本合并命令的输出。

可以使用FCLOSE( ) 或CLOSE ALL 关闭低级文件,也可以用SET TEXTMERGE TO 命令而不加文件名来关闭低级文件,该文件的句柄保存在_TEXT 中。

_TEXT 的初始默认值是-1。

如果您正将文本合并输出到文件中,该文件的句柄存在_TEXT 中,那么您可以把-1 存入_TEXT 中,这样可以关闭对该文件的输出而不关闭该文件。

m语言函数

m语言函数

m语言函数
M语言是一种语法类似于C 语言和C++ 的编程语言,它提供了一些常用的标准函数库,包括数学、字符串、文件I/O、内存管理等功能。

以下是一些常用的M语言函数:
1. printf():输出函数,可用于在控制台输出字符串、数字等。

2. scanf():输入函数,可用于从控制台读取用户输入的字符串、数字等。

3. strlen():用于计算字符串的长度。

4. strcpy():用于将一个字符串复制到另一个字符串变量中。

5. strcat():用于将两个字符串连接成一个字符串。

6. atoi():将字符串类型转换成整型数据类型。

7. atof():将字符串类型转换成浮点型数据类型。

8. pow():计算一个数的指定次幂。

9. sqrt():计算一个数的平方根。

10. rand():生成一个随机数。

11. memset():用于对指定的内存空间进行赋值操作。

12. memcpy():将一个内存块的内容复制到另一个内存块中。

13. fopen():打开一个文件,返回一个文件指针。

14. fclose():关闭一个已经打开的文件。

15. fgets():从指定文件中读取一行字符。

16. fputs():向指定文件中写入一行字符。

17. fseek():在一个已经打开的文件中移动文件指针。

18. malloc():动态分配内存空间。

19. free():释放已经动态分配的内存空间。

20. exit():将程序退出。

ifstream seekg用法

ifstream seekg用法

ifstream seekg用法在C++中,文件是一种常用的数据存储方式。

对于大部分的文件操作,我们都可以使用fstream流(即可以读或写)。

但是在我们进行读操作时,则可能需要操作二进制文件。

这时,我们就需要了解fstream中提供的一些工具函数,来帮助我们操作文件。

seekg()函数是C++ STL库中提供的一个函数,它可以很方便地定位文件中的指定位置(指定偏移量)。

本文将重点介绍seekg()函数的用法。

第一步,需记住在头文件中引入<fstream>。

第二步,我们需要使用fstream流打开一个文件。

如果是读取文件,在打开文件时,我们可以使用文件指针(get指针)来标记当前读取位置。

在读取完成后,该指针会自动指向下一个字符。

如果要再次读取相同的位置,则需要使用seekg()函数重新设置位置。

第三步,需要知道seekg()函数的在定位文件位置的时候参数的含义。

具体参数请参见以下表格:参数值|含义-|-1|从文件起点开始向后移动一定的字节数2|从文件末尾开始向前移动一定的字节数0|从当前位置开始向后移动一定的字节数我们现在需要将文件指针移到文件头后面的第3个字节,可以采用以下代码:```inFile.seekg(3);```又若需要到文件末尾后面的第2字符处(也就是从文件末尾开始向前移动两个字符),则可以采用以下代码:```inFile.seekg(-2,ios::end);```ios::end用来标记参数中所取得位置的初始化位置是在文件结束后还是开始位置。

第四步,我们知道了seekg()函数的参数含义,接下来我们需要了解该函数返回值的含义。

当我们调用seekg()函数时,它会返回一个指针,该指针表示文件的当前位置。

可以通过以下代码获得该指针。

```pos = inFile.tellg();```需要注意的是,在使用tellg()函数时,只能取得当前位置,不能改变文件指针的位置。

c语言基础教程-第十章------文件和读写函数

c语言基础教程-第十章------文件和读写函数

C语言基础教程文件和文件指针1.文件一般说来,文件是有序数据的集合。

程序文件是程序代码的有序集合,数据文件是一组数据的有序集合。

文件是被存放在外部存储设备中的信息。

对文件的处理过程就是面向文件的输入和输出过程。

文件的输入过程是从文件中读出信息,文件的输出过程是往文件中写入信息,文件的输入的过程使用读函数,实现文件输出的过程使用写函数。

文件的读写函数是实现文件操作的主要函数,本章将用大量篇幅来讲述文件的读写函数。

C语言文件被称为流式文件,其特点是不分记录或块,将文件看成是信息"流"或看成是一个字符流(文本文件),或看成是一个二进制流(二进制文件).文件的存取是以字符(字节)为单位的,读写数据流的开始和结束受程序控制。

任何一个文件都是以EOF结束,最简单的文件是只有结束符的空文件。

C语言文件包含有设备文件和磁盘文件,例如,键盘是一种输入信息的文件,显示器屏幕和打印机是输出信息的文件它们都属于设备文件。

将内存的信息放到磁盘上保存,需要时再从磁盘上装入内存,这就要使用磁盘文件,磁盘文件是计算机中常用的文件nC语言文件按存放设备分设备文件和磁盘文件;按数据的组织形式分为文本文件(ASCII码文件)和二进制文件。

文本文件是按一个字节存放一个字符的ASCII码来存放的;二进制文件是按数据在内存中的存储形式放到磁盘上的。

例如,有一个整数10000,在内存中按二进制形式存放,占2个字节,将它放在磁盘上如按文本文件形式存放,占5个字节,每个数位占一个字节。

两种存放方式各有利弊。

以文本文件形式输出便于对字符进行处理,也便于输出字符,但是占用存储空间较多,并且要花费转换时间。

以二进制文件形式输出可节省存储空间和转换时间,但是不能直接输出字符形式。

2.文件指针文件指针是一种用来指向某个文件的指针。

如果说某个文件指针指向某个文件,则是该文件指针指向某个文件存放在内存中的缓冲区的首地址。

每一个被使用的文件都要在内存中开辟一个区域,用来存放的有关信息,包括文件名字、文件状态和文件当前位置等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在阅读代码时,遇到了很早之前用过的fseek(),很久没有用了,有点陌生,写出来以便下次查阅。

函数功能是把文件指针指向文件的开头,需要包含头文件stdio.h
fseek
函数名: fseek
功能: 重定位流上的文件指针
用法: int fseek(FILE *stream, long offset, int fromwhere);
描述: 函数设置文件指针stream的位置。

如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。

如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,否则返回其他值。

fseek position the file position pointer for the file referenced by stream to the byte location calculated by offset.
程序例:
[cpp]
01.#i n c l u d e<s t d i o.h>
02.l o n g f i l e s i z e(F I L E*s t r e a m);
03.i n t m a i n(v o i d)
04.{
05.F I L E*s t r e a m;
06.s t r e a m=f o p e n("M Y F I L E.T X T","w+");
07.f p r i n t f(s t r e a m,"T h i s i s a t e s t");
08.p r i n t f("F i l e s i z e o f M Y F I L E.T X T i s%l d b y t e s\n",f i l e s i z e(s t r e a m));
09.f c l o s e(s t r e a m);
10.r e t u r n0;
11.}
12.l o n g f i l e s i z e(F I L E*s t r e a m)
13.{
14.l o n g c u r p o s,l e n g t h;
15.c u r p o s=f t e l l(s t r e a m);
16.f s e e k(s t r e a m,0L,S E E K_E N D);
17.l e n g t h=f t e l l(s t r e a m);
18.f s e e k(s t r e a m,c u r p o s,S E E K_S E T);
19.r e t u r n l e n g t h;
20.}
无法加载插件。

int fseek( FILE *stream, long offset, int origin );
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET SEEK_SET:文件开头
SEEK_CUR:当前位置
SEEK_END:文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.
简言之:
fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

使用实例:
[cpp]
01.#i n c l u d e<s t d i o.h>
02.#d e f i n e N5
03.t y p e d e f s t r u c t s t u d e n t{
04.l o n g s n o;
05.c h a r n a m e[10];
06.f l o a t s c o r e[3];
07.}S T U;
08.v o i d f u n(c h a r*f i l e n a m e,S T U n)
09.{
10.F I L E*f p;
11.f p=f o p e n(f i l e n a m e,"r b+");
12.f s e e k(f p,-1L*s i z e o f(S T U),S E E K_E N D);
13.f w r i t e(&n,s i z e o f(S T U),1,f p);
14.f c l o s e(f p);
15.}
16.v o i d m a i n()
17.{
18.S T U t[N]={{10001,"M a C h a o",91,92,77},{10002,"C a o K a i",75,60,88},
19.{10003,"L i S i",85,70,78},{10004,"F a n g F a n g",90,82,87},
20.{10005,"Z h a n g S a n",95,80,88}};
无法加载插件。

21.S T U n={10006,"Z h a o S i",55,70,68},s s[N];
22.i n t i,j;F I L E*f p;
23.f p=f o p e n("s t u d e n t.d a t","w b");
24.f w r i t e(t,s i z e o f(S T U),N,f p);
25.f c l o s e(f p);
26.f p=f o p e n("s t u d e n t.d a t","r b");
27.f r e a d(s s,s i z e o f(S T U),N,f p);
28.f c l o s e(f p);
29.p r i n t f("\n T h e o r i g i n a l d a t a:\n\n");
30.f o r(j=0;j<N;j++)
31.{
32.p r i n t f("\n N o:%l d N a m e:%-8s S c o r e s:",s s[j].s n o,s s[j].n a m e);
33.f o r(i=0;i<3;i++)
[cpp]
01.p r i n t f("%6.2f",s s[j].s c o r e[i]);
02.p r i n t f("\n");
03.}
04.f u n("s t u d e n t.d a t",n);
05.p r i n t f("\n T h e d a t a a f t e r m o d i f i n g:\n\n");
06.f p=f o p e n("s t u d e n t.d a t","r b");
07.f r e a d(s s,s i z e o f(S T U),N,f p);
08.f c l o s e(f p);
09.f o r(j=0;j<N;j++)
10.{
11.p r i n t f("\n N o:%l d N a m e:%-8s S c o r e s:",s s[j].s n o,s s[j].n a m e);
12.f o r(i=0;i<3;i++)
[cpp]
01.p r i n t f("%6.2f",s s[j].s c o r e[i]);
02.p r i n t f("\n");
03.}
无法加载插件。

无法加载插件。

相关文档
最新文档