C语言第10章 对文件的输入输出

合集下载

c语言文件的输入输出

c语言文件的输入输出

C语言文件的输入与输出一.文件指针每个被使用的文件都在内存中开辟一个区,用来存放文件的有关信息(如文件的名字、文什状态及文件当前位置等)。

这些信息是保存在一个结构体变量中的。

该结构体类型是由系统定义的,取名为FILE。

在sudio.h文件中有以下的文件类型声明:typedef struct{short level; /*缓冲区“满”或“空”的程度*/unsigned flags; /*文件状态标志*/char fd; /*文件描述符*/unsigned char hold; /*如无缓冲区不读取字符*/short bsize; /*缓冲区的大小*/unsigned char *buffer;/*数据缓冲区的位置*/unsigned char *curp; /*指针,当前的指向*/unsigned istemp; /*临时文件,指示器*/short token; /*用于有效性检查*/}FILE;在缓冲文件系统中,每个被使用的文件都要在内存中开辟一FILE 类型的区,存放文件的有关信息。

FILE类型的数组:FILE f[5];定义了一个结构体数组f,它有5个元素,可以用来存放5个文件的信息。

有了文件指针类型,就可以用它来定义文件指针变量,用文件指针变量来访问文件,其形式为:FILE *指针变量名。

例如:FILE *fp;其中fp是指向要访问文件的指针变量。

例如,通过文件指针访问text.exe文件,有如下的访问:FILE *fp;fp=fopen(“text.exe”, “rb”);ch=getc(fp);第一行语句只定义了一个没有指向的文件指针fp,第二行是打开文件text.exe,并同时确定对访问文件的操作方式(此处对访问的文件只进行读操作),这时给文件结构中的成员信息赋值,并使fp指向text.exe 文件,第三行是利用文件指针对文件进行操作,操作方式应当与打开文件时确定的方式一致(只读)。

C语言输入和输出

C语言输入和输出

(5)不同类型的整型数据之间的赋值都是采用“按存储单元 中的存储形式直接传送”的方式来进行的。例如:
unsigned a; int b=-1; a=b; printf(“a=%d,a=%u\n”,a,a); printf(“b=%d,b=%u\n”,b,b); 在整数为16位的计算机上,其显示结果为: a=-1, a=65535 b=-1,b=65535 这里: b 11 a
③ %ms:m为输出时字符串所占的列数。如果字符串的 长度(字符个数)大于m,则按字符串的本身长度输出, 否则,输出时,字符串向右对齐,左端补以“空格” 符。
④ %-ms:m的意义同上。如果字符串的长度小于m, 则输出时字符串向左对齐,右端补以“空格”符。
⑤ %m.nf:m为浮点型数据所占的总列数(包括小数 点),n为小数点后面的位数。如果数据的长度小于m, 则输出时向右对齐,左端补以“空格”符。
程序执行时按下列 格式输入数据: 10 2.5<CR> 那么,程序的输出 结果将如下所示: i=10,f=2.5
(1) printf函数中的“格式控制”字符串 中的每一个格式说明符,都必须与“输出表”中的 某一个变量相对应,例如,上述程序中的“%d”与 i对应,“%f”与f对应,而且格式说明符应当与其 所对应的变量的类型一致。
g,G: 选用%f或%e格式中输出宽度较短的一种格式,不输出无用的0。
s: 输出以'\0'结尾的字符串。 o和x格式输出的数值不带符号,符号位也作为八/十六进制数一起显示 出来(补码形式)。如:a=-1;printf("%o",a);在整数占16位的计算 机上,将显示:177777。这是由于-1补码是:1111111111111111
当用户输入ABCDEFG时,系统将把A赋给变量c,将C赋 给变量c1,将F赋给变量c2 。 char s[100], s1[200]; scanf("%2s%3s",s,s1) 当用户输入ABCDEFG时,系统将自动地把 AB赋给变量s,将CDE赋给变量s1。

C语言程序设计第四版PPT-谭浩强

C语言程序设计第四版PPT-谭浩强

文件f2的 文件信息区
文件f3的 文件信息区
文件的基本知识——文件的操作 写文件:打开-写-关闭 读文件:打开-读-关闭
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
第10章 文件
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
文件
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
例: fprintf (fp,"%d,%6.2f",i,f); fscanf (fp,"%d,%f",&i,&f);
用文件扩展名”
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操 作系统间流动。
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 ASCII文件:数据逐个字符的ASCII码 输出到外存,也称文本文件 二进制文件:内存中二进制形式的数据 直接输出到外存

C语言输入输出函数全解

C语言输入输出函数全解

文章1Turbo C2.0标准输入输出函数和文件的输入输出函数。

通过本节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的读写函数1.1 标准输入输出函数1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。

printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。

下面详细介绍这两个函数的用法。

一、printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

在编写程序时经常会用到此函数。

printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。

1. 格式化规定符Turbo C2.0提供的格式化规定符如下:━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用──────────────────────────%d 十进制有符号整数%u 十进制无符号整数%f 浮点数%s 字符串%c 单个字符%p 指针的值%e 指数形式的浮点数%x, %X 无符号以十六进制表示的整数%0 无符号以八进制表示的整数%g 自动选择合适的表示法━━━━━━━━━━━━━━━━━━━━━━━━━━说明:(1). 可以在"%"和字母之间插进数字表示最大场宽。

C语言入门经典(第四版)10-基本输入和输出操作

C语言入门经典(第四版)10-基本输入和输出操作

C入门经典(第4版) 入门经典( 10.4.2 转义序列
在printf()和wprintf()函数的格式控制字符串中可以包含空白字符.空白字 printf()和wprintf()函数的格式控制字符串中可以包含空白字符.空白字 符有换行符,回车符,换页符,空格和制表符.它们用以\ 符有换行符,回车符,换页符,空格和制表符.它们用以\开头的转义序列表 示.
C入门经典(第4版) 入门经典( 10.3.2 输入格式控制字符串
在scanf()或wscanf()函数中使用的格式控制字符串不完全类似于printf()中 scanf()或wscanf()函数中使用的格式控制字符串不完全类似于printf()中 的格式控制字符串.在格式控制字符串中添加一个或多个空白字符,如空格' ', 的格式控制字符串.在格式控制字符串中添加一个或多个空白字符,如空格' ', 制表符' t'或换行符'n',scanf()会忽略空白字符,直接读入输入中的下一个非空 制表符'\t'或换行符'n',scanf()会忽略空白字符,直接读入输入中的下一个非空 白字符.在格式控制字符串中只要出现一个空白字符,就会造成无数个连续的 空白字符被忽略.因此,可以在格式字符串内加入任意多个的空白字符,使输 入易于理解.注意,scanf()默认忽略空白字符,但使用%c,%[]或%n指定符 入易于理解.注意,scanf()默认忽略空白字符,但使用%c,%[]或%n指定符 读取数据时除外 .
C入门经典(要使用scanf()函数从键盘输入数据,使用printf()函数将数据输 前面章节主要使用scanf()函数从键盘输入数据,使用printf()函数将数据输 出到屏幕上.事实上,使用这些函数指定从哪里输入或输出到哪里去的方式没 有什么特别.因为scanf()函数可以从任何地方接收信息,只要这些信息是字符 有什么特别.因为scanf()函数可以从任何地方接收信息,只要这些信息是字符 流即可.同样,printf()函数也可以将数据输出到任何能接收字符流的地方去. 流即可.同样,printf()函数也可以将数据输出到任何能接收字符流的地方去. 这并不是巧合:C 这并不是巧合:C语言的标准输入输出函数都是独立于设备的,程序员不需要 考虑如何在特定设备上传入传出数据.C 考虑如何在特定设备上传入传出数据.C语言的库函数和操作系统会确保在特 定设备上的操作完全正常.

c语言各类型 输入输出

c语言各类型 输入输出

C语言是一种广泛使用的编程语言,它具有强大的输入输出功能。

在C语言中,我们可以使用不同的数据类型来处理各种输入和输出操作。

本文将详细介绍C语言中各种类型的输入输出方法,并提供一些具体的示例。

首先,我们来谈谈C语言中的基本输入输出函数。

标准库函数printf用于输出数据到屏幕上。

它可以打印各种数据类型的值,如整数、浮点数、字符等。

下面是一个示例:#include<stdio.h>int main() {int num = 10;printf("The value of num is %d\n", num);return0;}上述代码中,我们使用printf函数将变量num的值输出到屏幕上。

%d是一个格式说明符,用于指定输出的数据类型为整数。

通过这种方式,我们可以将任何类型的数据输出到屏幕上。

除了printf函数,C语言还提供了scanf函数用于从键盘上接收输入。

scanf函数可以读取各种数据类型的值,如整数、浮点数、字符等。

下面是一个示例:#include<stdio.h>int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("You entered: %d\n", num);return0;}在上述代码中,我们使用scanf函数从键盘上接收一个整数,并将其存储在变量num中。

%d是一个格式说明符,用于指定输入的数据类型为整数。

需要注意的是,在scanf函数中,我们需要使用&操作符来获取变量的地址。

除了基本的输入输出函数,C语言还提供了一些其他的输入输出函数,用于处理特定类型的数据。

例如,getchar函数用于接收单个字符的输入,puts函数用于输出字符串。

下面是一个示例:#include<stdio.h>int main() {char ch;printf("Enter a character: ");ch = getchar();printf("You entered: ");putchar(ch);printf("\n");return0;}在上述代码中,我们使用getchar函数接收一个字符的输入,并将其存储在变量ch中。

二级C语言历年真题汇总__第10章对文件的输入输出-李赛红

二级C语言历年真题汇总__第10章对文件的输入输出-李赛红

二级C语言历年真题汇总__第10章对文件的输入输出-李赛红第10章对文件的输入输出(20xx年x月真题)(40)有以下程序#include <stdio.h>main(){ FILE *fp;int i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d,",a[i]);}程序运行后的输出结果是A)4,5,6,1,2,3, B)1,2,3,3,2,1,C)1,2,3,4,5,6, D)6,5,4,3,2,1,答案:D(20xx年x月真题)40、以下函数不能用于向文件写入数据的是A ftellB fwriteC fputcD fprintf答案:A(20xx年x月真题)40.有以下程序#include<stdio.h>main(){FILE *fp; int k,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp); fp=fopen("d2.dat","r");for(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp); printf("%d,%d\n",k,n); }程序运行后的输出结果是A.1,2B.3,4C.5,6D.123,456答案:C(20xx年x月真题)(40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是A)写操作结束后可以从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写(20xx年x月真题)(40)有以下程序#include#include<stdio.h>main(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fopen("myfile.data","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp); }程序运行后的输出结果是A) abc B) 28c C) abc28 D)因类型不一致而出错答案:B(20xx年x月真题)(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件答案:C(20xx年x月真题)40.有以下程序#include <stdio.h>main(){ FILE *f;f=fopen("filea.txt","w"); fprintf(f,"abc"); fclose(f); }若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt的内容为A)helloabc B)abclo C)abc D)abchello答案:C(20xx年x月真题)(40)有以下程序#include <stdio.h>main(){ FILE *pf;char *s1="China", *s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf); /*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}以上程序执行后abc.dat文件的内容是A) China B) Chinang C) ChinaBeijing D) BeijingChina答案:B(20xx年x月真题)30、下列叙述中错误的是( )。

C语言程序设计第10章文件及其应用

C语言程序设计第10章文件及其应用

学一学
1.定义文件指针 一般形式为: FILE * fp; 其中fp就是所定义文件指针。 FILE类型 以及所有的文件读写函数和相关常量都定 义在文件stdio.h中,在源程序的开头要 包含头文件 stdio.h 。
学一学
2.打开文件 C语言中,使用fopen函数来打开文件。打开文件是使 一个文件指针变量指向被打开文件的结构变量,以便通 过该指针变量访问打开的文件。fopen函数的调用形式 如下: fopen(chFileName,mode); 以mode 方式打开文件chFileName。其中,参数 chFileName 是将要读写文件的文件名,mode为文件 的操作方式。若文件打开成功,返回一个文件指针,若 打开失败,则返回空值NULL,NULL在stdio.h中被定 义为0。文件操作方式mode是一个整数,其取值及含 义如表10-1所示。

流程图
开始 定义文件指针fp,定义整型数组 iArray[5],定义循环变量i 以写二进制文件方式打开文件 fp=fopen("test.dat","wb") N i=0
fp==NULL Y
i<5 Y 输入1个整数存入 数组元素iArray[i]
N
i++
把数组iArray中5 个整数写入文件
显示出错信息 关闭文件 exit(0)
试一试
问题10.1编一程序从键盘输入一串字符“may friendship forever! ”,然后保存在文件myInfo.txt中。 【解题步骤】 1.定义文件指针fp; 2.定义字符数组chInfo用来存输入的字符串; 3.以写文本文件方式打开文件myInfo.txt; 4.如果打开文件失败,则输出错误信息并结束程序; 5.否则,打开文件成功,则从键盘输入数据; 5.将字符数组chInfo中的字符写入文件myInfo.txt; 6.关闭文件。

C语言文件操作与输入输出

C语言文件操作与输入输出

C语言文件操作与输入输出随着计算机科学和编程的不断发展,文件操作和输入输出(I/O)是编程中非常重要的方面之一。

C语言作为一种广泛应用于系统软件和嵌入式开发的高级编程语言,也提供了一系列的函数和库来处理文件操作和输入输出。

本文将介绍C语言中的文件操作以及输入输出的相关知识。

一、文件概念及文件操作1. 文件概念在计算机领域中,文件是用于存储和组织数据的一种重要方式。

可以将文件看作是一种包含了数据的序列,这些数据可以是文本、图像、音频等形式。

在C语言中,文件以字节流的形式进行读取和写入。

2. 文件操作函数C语言提供了丰富的文件操作函数,用于打开、关闭、读取和写入文件。

下面是一些常用的文件操作函数:- fopen():用于打开文件,并返回一个指向该文件的指针。

- fclose():用于关闭文件。

- fgetc():用于从文件中读取一个字符。

- fputc():用于向文件中写入一个字符。

- fgets():用于从文件中读取一行文本。

- fputs():用于向文件中写入一行文本。

- fread():用于从文件中读取一定数量的数据块。

- fwrite():用于向文件中写入一定数量的数据块。

3. 文件打开模式在使用fopen()函数打开文件时,我们需要指定文件的打开模式。

常见的文件打开模式有:- "r":只读模式,用于读取文件的内容。

- "w":写入模式,如果文件不存在则创建文件,如果文件已存在则清空文件内容。

- "a":追加模式,用于向文件末尾追加内容。

- "rb":二进制只读模式,用于读取二进制文件。

- "wb":二进制写入模式,用于写入二进制文件。

二、输入输出(I/O)1. 标准输入输出C语言提供了三个标准的文件指针,它们分别是stdin、stdout和stderr。

它们对应于标准输入、标准输出和标准错误输出。

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

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

C语言中的文件操作与输入输出流处理C语言是一种广泛使用的编程语言,而文件操作与输入输出流处理是C语言中非常重要的一部分。

在C语言中,我们可以通过文件操作来读取和写入文件,以及对文件进行各种处理。

同时,输入输出流处理也可以让我们方便地与外部文件进行交互,实现数据的输入输出。

在C语言中,文件操作主要涉及到文件的打开、关闭、读取和写入等操作。

下面我们来具体了解一下C语言中文件操作的一些常用函数:1. fopen函数:用于打开一个文件,语法为:FILE *fopen(const char *filename, const char *mode);其中,filename为文件名,mode为打开文件的模式,有"r"(只读)、"w"(写)、"a"(追加)等不同模式。

2. fclose函数:用于关闭一个打开的文件,语法为:int fclose(FILE *stream);其中,stream为打开文件所返回的指针。

3. fgetc和fputc函数:分别用于读取和写入单个字符,语法为:int fgetc(FILE *stream)和int fputc(int c, FILE *stream)。

4. fgets和fputs函数:分别用于读取和写入一行字符,语法为:char *fgets(char *str, int n, FILE *stream)和int fputs(const char *str, FILE *stream)。

5. fprintf函数:用于向文件中格式化输出数据,语法为:int fprintf(FILE*stream, const char *format, ...);其中,format为输出格式。

C语言中的输入输出流处理则是通过标准输入输出流来实现的。

通过标准输入输出流,我们可以方便地进行终端输入输出,或与外部文件进行数据交互。

下面是C语言中一些常用的输入输出流处理函数:1. scanf函数:用于从终端输入数据,语法为:int scanf(const char *format, ...);其中,format为输入格式。

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

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

C语言的文件操作与输入输出流控制C语言是一种广泛应用于系统编程和嵌入式开发的高级编程语言,它提供了丰富的文件操作和输入输出流控制的功能,使得程序能够与外部环境进行数据的交互和存储。

本文将介绍C语言中文件操作和输入输出流控制的相关知识。

一、文件操作在C语言中,文件是指计算机中存储数据的一种资源,可以是文本文件、二进制文件等。

文件操作是指对文件进行读取、写入、打开、关闭等操作。

1. 文件的打开与关闭在C语言中,使用文件指针来操作文件。

文件指针是一个指向文件的指针变量,通过它可以对文件进行读写操作。

文件的打开使用fopen函数,语法如下:FILE *fopen(const char *filename, const char *mode);其中,filename是文件名,mode是打开模式。

常见的打开模式有:- "r":只读模式,打开一个已存在的文本文件。

- "w":写入模式,打开一个文本文件,如果文件不存在则创建,如果文件存在则清空文件内容。

- "a":追加模式,打开一个文本文件,如果文件不存在则创建,如果文件存在则在文件末尾追加内容。

- "rb"、"wb"、"ab":对应的是二进制文件的读写模式。

文件的关闭使用fclose函数:int fclose(FILE *stream);其中,stream是文件指针。

2. 文件的读取与写入文件的读取使用fscanf函数,语法如下:int fscanf(FILE *stream, const char *format, ...);其中,stream是文件指针,format是格式控制字符串,...是要读取的变量。

文件的写入使用fprintf函数,语法如下:int fprintf(FILE *stream, const char *format, ...);其中,stream是文件指针,format是格式控制字符串,...是要写入的变量。

第10章 文 件

第10章  文 件

龙诚数码:
2012-4-20
10.1 文件的概述
10.1.2 文件的打开与关闭 1. 文件打开函数fopen( ) 文件打开函数fopen(
12
常用的调用形式: 常用的调用形式: 调用形式 fp; FILE *fp; fopen(文件名 文件使用方式) 文件名, fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串) 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号 符号。 文件使用方式:是具有特定含义的符号。 函数功能: 函数功能:
龙诚数码:
5
2012-4-20
10.1 文件的概述
10.1.1 文件和文件指针 2. 文件的种类 例如将整数1949分别存储在这两种数据文件中。 1949分别存储在这两种数据文件中 例如将整数1949分别存储在这两种数据文件中。 ASCII文件:ASCII码 文件: 文件 码
龙诚数码:
7
2012-4-20
10.1 文件的概述
10.1.1 文件和文件指针 3. 缓冲文件和文件指针
系统对文件的处理过程就是 对文件进行输入 输出操作的过 输入/ 对文件进行 输入 / 输出 操作的过 程。 从文件读数据时, 从文件读数据时,先一次性 从磁盘文件中读取一批数据到 缓冲区, 缓冲区 , 然后再从缓冲区逐个 将数据送入变量。 将数据送入变量。 向文件写数据时, 向文件写数据时,也是先将 变量中数据送到缓冲区, 变量中数据送到缓冲区 , 待缓 冲区装满后 , 再一起存到磁盘 文件中。 文件中。
按指定的文件使用方式打开指定的文件 按指定的文件使用方式打开指定的文件。 文件使用方式打开指定的文件。 若文件打开成功 成功, 若文件打开成功,为该文件分配一个文件缓冲区和一个 FILE类型变量 返回一个FILE类型指针 类型变量, FILE类型指针; FILE类型变量,返回一个FILE类型指针; 若文件打开失败 返回NULL 失败, NULL。 若文件打开失败,返回NULL。

第10章 输入输出(过程式)

第10章 输入输出(过程式)
exit(-1); }
往文件中写入数据
• 输出一个字符,输出成功时返回输出的字符
int fputc(int c, FILE *stream );
• 输出一个字符串,输出成功时返回一个非负整数
int fputs(const char *string, FILE *stream );
• 输出基本类型数据,返回输出的字符数
关闭文件
• fclose(FILE *stream );
文件输入
打开文件
• FILE *fp=fopen( const char *filename, const char *mode );
• filename是要打开的外部文件名; • mode是打开方式,它可以是:
"r",表示打开一个外部文件用于读操作,这时, 外部文件必须存在,否则打开文件失败。
“a”:打开一个外部文件用于添加(从文件末尾)操作。 如果外部文件不存在,则先创建该外部文件。
在打开方式w或a的后面还可以加上b,指出以二进制 方式打开文件。默认打开方式为文本方式。
对文件打开操作的成功与否进行判断:
FILE *fp=fopen("d:\\data\\file1.txt","w"); if (fp == NULL) { cerr << "文件打开失败\n";
在C++中,输入/输出不是语言定义的成分, 而是由具体的实现(编译程序)作为标准 库的功能来提供。
C++的I/O流
在C++中,输入/输出操作是一种基于字节流的 操作:
• 在进行输入操作时,可把输入的数据看成逐个字节 地从外设流入到计算机内部(内存);

高树芳C语言程序设计--第十章

高树芳C语言程序设计--第十章

[解决方案]定义结构体类型变量存储学生信息,
使用scanf从键盘输入数据,使用fprintf函数按格 式输出数据到文件(生成data3.txt文件)。
程序代码
10
10.2
文件的读写
相关知识:
1.文件的读写 2.格式化读写函数
11
10.2
文件的读写
[课堂训练10-1] 1.使用Windows的记事本建立一个文件,其 中写入15个任意整数,数据之间用逗号分隔。 编程输出该文件所有的奇数。 2.编程以只读方式打开案例10-3中的 data3.txt文件,在屏幕上输出所有学生的数 据。
第10章
文件
知识目标: 1. 理解文件和文件指针的概念 2.掌握文件的打开和关闭方法 3.掌握文件的读写操作 4.掌握文件的定位与随机读写操作
1
第10章 文件 能力目标: 1. 会打开和关闭文件 2.会对文件进行读写和定位等操作
本章内容: 文件的定义,文件型指针,文件的打开与关闭,文件 的读写,文件的定位与随机读写。
2
第10章 10.1 10.2 10.3 10.4
文件
文件的打开与关闭 文件的读写 文件的定位和随机读写 知识拓展
3
10.1 文件的打开与关闭
案例10-1
输出文件中的整数及其和
4
10.1 文件的打开与关闭
案例10-1 [案例任务]
输出文件中的整数及其和
使用Windows的记事本在磁盘上与C程序文件在同一目 录下建立一个文件名为“data1.txt”的文本文件(如 图10-1所示),以空格、制表符或回车为分隔符输入 任意个整数,设计C程序,以只读方式打开此文件,若 该文件不存在,则输出“不能打开文件!”,若打开 成功,则输出所有整数,以及整数的个数和它们之和。

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析首先,值得指出的是,《C语言程序设计》是一本经典的编程教材,它通过系统性的介绍和练习,帮助读者掌握C语言编程的基本原理和技巧。

而针对这本书中的习题,我们将逐一进行解答和解析,以便读者更好地理解和掌握其中的知识。

1. 第一章:C语言概述在第一章中,主要介绍了C语言的历史背景、特点和发展。

对于习题的解答,我们可以通过提问的方式帮助读者思考和回顾所学内容,例如:“C语言为什么被广泛应用于系统软件开发?”、“C语言的起源是什么?”2. 第二章:数据类型、运算符和表达式在第二章中,主要介绍C语言中的数据类型、运算符和表达式。

习题部分则涵盖了类型转换、算术运算、逻辑运算等内容。

针对这些习题,我们可以给出详细的解答步骤和原理解析,让读者了解C语言中各种运算符的优先级和使用规则。

3. 第三章:控制结构第三章主要介绍了C语言中的分支结构和循环结构。

针对习题部分,我们可以详细解答条件语句、循环语句的使用和注意事项,同时提供一些实际例子和应用场景,让读者更好地理解和掌握这些知识点。

4. 第四章:函数与程序结构在第四章中,重点介绍了函数的定义、调用和参数传递等。

针对习题,我们可以通过编写代码的方式,给出函数的实际应用案例,并解释其中的关键代码部分,帮助读者理解函数的作用和使用方法。

5. 第五章:指针与数组第五章主要介绍了C语言中指针和数组的概念和用法。

对于习题解答,我们可以给出指针和数组的定义、操作方法,并通过实例演示指针和数组在实际编程中的应用。

6. 第六章:字符输入输出第六章主要讲解了C语言中字符输入输出的函数和特点。

在解答习题时,我们可以提供一些常见的字符输入输出问题,并给出详细的解决思路和代码示例。

7. 第七章:类型第七章主要介绍了C语言中的类型定义和使用。

对于习题解答,我们可以通过解析代码和理论知识的结合,帮助读者理解类型的定义和使用场景。

8. 第八章:运算符和表达式在第八章中,主要介绍了C语言中的运算符和表达式。

C语言第10章对文件的输入输出 ppt课件

C语言第10章对文件的输入输出  ppt课件
程序中的输入输出都是通过操作系统进行 的 ➢“流”是一个传输通道,数据可以从运行 环境流入程序中,或从程序流至运行环境
PPT课件
11
10.1.1 什么是文件
➢从C程序的观点来看,无论程序一次读写 一个字符,或一行文字,或一个指定的数 据区,作为输入输出的各种文件或设备都 是统一以逻辑数据流的方式出现的。C语 言把文件看作是一个字符(或字节)的序 列。一个输入输出流就是一个字符流或字 节(内容为二进制数据)流。
PPT课件
20
10.1.3 文件的分类
ASCII形式
00110001 00110000 00110000 00110000 00110000
(1) (0) (0) (0) (0)
二进制形式
00000000 00000000 00100111 00010000
(10000)
PPT课件
21
10.1.4 文件缓冲区
的temp子目录下面
PPT课件
15
10.1.2 文件名
➢文件路径表示文文件件在名外部存储设备中的位 置。如:
D: \CC\temp\file1.dat 表示file1.dat文件存放在D盘中的CC目录下
的temp子目录下面
PPT课件
16
10.1.2 文件名
➢文件路径表示文命 识件名 符在规 的外则 命部遵 名存循 规储标 则设备中的位 置。如:
➢“文件”指存储在外部介质上数据的集合
一批数据是以文件的形式存放在外部介质上的 操作系统是以文件为单位对数据进行管理 想找存放在外部介质上的数据,先按文件名找
到所指定的文件,然后再从该文件读数据 要向外部介质上存储数据也必须先建立一个文
件(以文件名作为标志),才能向它输出数据

C语言复习提纲(含答案)

C语言复习提纲(含答案)


B) 一个整型表达式 D) 一个不合法的表达式
10
Logo
常见运算符
①算术运算符(+ - * / % ++ --):运算结果为数值。 注意:
自增、自减运算符的应用
②关系运算符(> < == >= <= !=):运算结果为1(真)或0 (假)。
③逻辑运算符(! && ||):运算结果为1(真)或0(假)。
变量:先定义,再使用
标识符:掌握标识符的命名规则:以下划线或字母开始,后 面跟着数字、字母、下划线。 a_b (合法) a-b (不合法)
Logo
8
短整型short 整 数值类型 基本类型 字符类型char 数组 结构体struct 构造类型 共用体union 浮点型 型 整型int 长整型long
第4章 选择结构程序设计
第5章 循环结构程序设计 第6章 利用数组处理批量数据 第7章 用函数实现模块化程序设计 第8章 善于利用指针 第9章 用户自己建立数据类型 第10章 对文件的输入输出
Logo
3
第1章 程序设计和C语言
C语言程序基本构成(1.4.2节),包括:
函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过 嵌套调用得以执行。
a/10%10的值为(2),a%10的值为( 3 )
表达式 j=i++/2 的值
注意:两整数相除,结果为整数
Logo
15
C语句分类
程序控制语句(9种):
分支:if( )~else~ ;switch
循环:for( )~;while( )~;do~while( ) 辅助控制:continue;break;goto;return 函数调用语句 表达式语句:表达式加分号构成。

(完整版)C语言程序设计教学大纲

(完整版)C语言程序设计教学大纲

“C语言程序设计”课程教学大纲英文名称:C language program designing课程编号:106004课程类型:C1学时/课内实践学时:48/0学分:3适用对象:计算机、自动化、通信、电子专业本科生先修课程:无使用教材及参考书:教材:C程序设计(第四版),谭浩强主编,清华大学出版社参考书:C程序设计习题解答与上机指导(第四版),谭浩强主编,清华大学出版社一、课程的性质、教学目的和任务:C语言是国内外广泛使用的一种计算机语言,它以其丰富灵活的控制和数据结构,简洁而高效的语句表达、清晰的程序结构、良好的移植性、较小的时空开销,已被广泛的应用于系统软件和应用软件的开发中。

本课程是计算机、自动化、通信、电子类专业的一门专业基础课。

课程的主要任务是引导学生进入计算机程序设计的广阔空间、培养学生的逻辑思维能力、抽象能力和基本的计算机程序设计能力。

本课程以C语言为载体,使学生对计算机程序设计有一个初步的正确的认识,学会阅读用计算机程序设计语言编写的简单应用程序,掌握结构化程序设计的基本方法和用计算机解决实际问题的基本步骤,训练学生的逻辑思维能力,培养其严谨的思维方式和良好的程序设计风格,为进一步学习其它专业基础课程和专业课程打下良好的基础。

二、课程内容和基本要求第一章程序设计和C语言1.教学内容:1.1 什么是计算机程序1.2 什么是计算机语言1.3 C语言的发展及其特点1.4 最简单的C语言程序1.5 运行C程序的步骤与方法1.6程序设计的任务2. 教学目的及要求:1)了解C语言的历史、特点2)掌握C语言的运行环境,初步了解运行一个C语言程序的过程3. 教学重点及难点:1)C语言的特点2)C程序的上机步骤第二章算法--程序的灵魂1.教学内容:2.1 什么是算法2.2 简单的算法举例2.3 算法的特性2.4 怎样表示一个算法2.5结构化程序设计方法2.教学目的及要求:1) 掌握算法的概念和特点2) 掌握用流程图、N-S流程图、伪代码表示算法3) 理解结构化程序设计方法的概念3.教学重点及难点:用流程图、N-S流程图、伪代码表示算法第三章最简单的C程序设计——顺序程序设计1. 教学内容:3.1 顺序程序设计举例3.2 数据的表现形式及其运算3.3 C语句3.4 数据的输入输出2. 教学目的及要求:1) 掌握基本数据类型的存储和表示方式,以及不同类型数据转换原则与方法2) 掌握运算符和表达式的使用方法3) 掌握语句的概念和使用方法4)掌握数据输入输出函数的使用,并能够编写简单的顺序结构程序3. 教学重点及难点:1) 基本数据类型的存储和表示方式2) 不同类型数据转换原则与方法3)运算符和表达式的运用4)语句的使用5)输入输出函数的使用第四章选择结构程序设计1. 教学内容:4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8选择结构程序综合举例2. 教学目的及要求:1) 掌握关系运算符和关系表达式、逻辑运算符和逻辑表达式、条件运算符和条件表达式的使用方法2) 能够运用if语句、switch语句实现选择结构,掌握if语句的嵌套3. 教学重点及难点:1)字三种运算符和表达式的使用2)if语句及if语句的嵌套第五章循环结构程序设计1. 教学内容:5.1 为什么需要循环控制5.2 用while语句实现循环5.3 用do---while语句实现循环5.4 用for 语句实现循环5.5 循环的嵌套5.6 几种循环的比较5.7 改变循环执行的状态5.8 循环程序举例2. 教学目的及要求:1) 熟练掌握三种循环语句的运用2)掌握循环的嵌套3)掌握break和continue语句的运用3. 教学重点及难点:1)三种循环语句的使用2)循环的嵌套第六章利用数组处理批量数据1.教学内容:6.1 怎样定义和引用一维数组6.2 怎样定义和引用二维数组6.3 字符数组2.教学目的及要求:1)掌握一维数组和二维数组的概念、初始化和引用2)掌握字符数组和字符串的应用3)学会使用字符串处理函数3.教学重点及难点:1)数组的初始化、引用2)字符串的处理第七章用函数实现模块化程序设计1.教学内容:7.1为什么要用函数7.2怎样定义函数7.3调用函数7.4对被调用函数的声明和函数原型7.5函数的嵌套调用7.6函数的递归调用7.7数组作为函数参数7.8局部变量和全局变量7.9变量的存储方式和生存期7.10 关于变量的声明和定义7.11 内部函数和外部函数2.教学目的及要求:1) 掌握函数的定义和调用方法2) 掌握函数的嵌套和递归调用3) 了解变量的存储类别和作用域3.教学重点及难点:1)函数的定义和调用2)函数的嵌套调用第八章善于利用指针1.教学内容:8.1 指针是什么8.2 指针变量8.3 通过指针引用数组8.4 通过指针引用字符串8.5 指向函数的指针8.6 返回指针值的函数8.7 指针数组和多重指针8.8 动态内存分配与指向它的指针变量8.9 有关指针的小结2.教学目的及要求:1) 掌握指针、指针变量的区别2) 掌握数组、指针、指针数组的关系3)了解指向函数的指针、返回指针值的函数、指针数组3.教学重点及难点:1)指针的定义、引用2)指针变量3)指针与数组的关系4)指针与函数的关系第九章用户自己建立数据类型1.教学内容:9.1 定义和使用结构体变量9.2 使用结构体数组9.3 结构体指针9.4 用指针处理链表9.5 共用体类型9.6 使用枚举类型9.7 用typedef声明新类型名2.教学目的及要求:1)掌握结构体、共用体、枚举类型的定义和使用方法,类型和变量的区别2)掌握有关链表的操作3.教学重点及难点:1)结构体定义和使用方法2)链表的操作第十章对文件的输入输出1.教学内容:10.1 C文件的有关基本知识10.2 打开与关闭文件10.3 顺序读写数据文件10.4 随机读写数据文件10.5 文件读写的出错检测2.教学目的及要求:1) 掌握文件的定义与分类,文件名的表示,文件的打开与关闭2) 了解顺序/随即读写数据文件的方法3) 解如何对文件进行读写出错检测3.教学重点及难点:文件的打开、关闭、读写三、课程教学基本要求1.课堂讲授:教学方法采用课堂讲授与课件配合使用,使用多媒体教学方式,使学生掌握基本概念和基本操作。

C语言程序设计——数据输入及输出

C语言程序设计——数据输入及输出

C语言程序设计——数据输入及输出C语言是一种通用的编程语言,广泛应用于各种领域,包括软件开发、嵌入式系统和科学计算等。

在C语言程序设计中,数据的输入和输出是非常重要的部分。

本文将介绍C语言中的数据输入和输出方法,包括标准输入输出函数、文件输入输出以及格式化输入输出等。

一、标准输入输出在C语言中,使用标准输入输出函数可以实现与用户的交互,输入和输出数据。

标准输入输出函数包括printf函数和scanf函数。

1. printf函数printf是一个格式化输出函数,它可以按指定的格式输出数据。

下面是一个简单的例子:```#include <stdio.h>int main(){int num1 = 10;float num2 = 3.14;printf("整数:%d\n", num1);printf("浮点数:%f\n", num2);}```输出结果为:```整数:10浮点数:3.140000```2. scanf函数scanf是一个格式化输入函数,它可以按指定的格式接收用户输入的数据。

下面是一个简单的例子:```#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的整数是:%d\n", num);}```运行程序后,会提示用户输入一个整数,用户输入后,程序将输出用户输入的整数。

二、文件输入输出除了标准输入输出函数,C语言还提供了文件输入输出函数,可以用于读写文件中的数据。

1. 文件输入使用文件输入函数,可以从文件中读取数据,并将其存储到变量中。

下面是一个简单的例子:```#include <stdio.h>int main(){FILE *fp;int num;fp = fopen("data.txt", "r");if (fp == NULL) {printf("文件打开失败\n");return 0;}fscanf(fp, "%d", &num);printf("从文件中读取的数据:%d\n", num);fclose(fp);return 0;}```上述程序打开一个名为data.txt的文件,并将文件中的数据读取到num变量中。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

两种存放方式各有利弊。

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

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

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

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

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

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

以上六种方式是针对“文本文件”类型
表10-2二进制文件的符号及其含义
文件使用方式 rb wb ab rb+ wb+ ab+ 代表的含义 打开一个已存在的二进制文件,只允许读数据 打开或建立一个二进制文件,只允许写数据 打开一个二进制文件,并在文件末尾追加数据 打开一个二进制文件,允许读和写 打开或建立一个二进制文件,允许读和写 打开一个二进制文件,允许打开3个标准文件: stdin:终端输入
stdout:终端输出
stderr:标准出错输出
5
表10-1文本文件的符号及其含义
文件使用方式 r w at rt+ at+ wt+ 代表的含义 打开一个已有的文本文件,只允许读取数据 打开或建立一个文本文件,只允许写入数据 打开一个已有的文本文件,并在文件末尾写数据 打开一个已有的文本文件,允许读和写 打开一个已有的文本文件,允许读或在文件末追加数据 打开或建立一个文本文件,允许读写
fgetc函数用来从指定的文件读入一个字符,该文件必须是读或写方 式打开的。fgetc函数的调用格式如下: ch=fgetc(fp); 其中fp为文件类型指针,ch为字符变量。fgetc函数返回的字符赋给 字符变量ch。如果在执行fgetc函数读字符时遇到文件结束符,则该函 数返回一个结束标志EOF(-1)。如果想从磁盘文件顺序读入字符并在屏 幕上显示出来,可以用以下的程序段: ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); }
说明:在书写时,要严格按照格式书写, 例如:将路径写成“C:\STUDENT\ch01_01\ch01_01.c” 是不正确的,这一点要特别注意。路径写成 “C:\\STUDENT\\ch01_01\\ch01_01.c”才是正确的,这 里的“\\”的含义是:第一个“\”代表转义字符,第二个 “\”才是字符本身。
apend
text binary
追加数据
文本文件,可省略 不写 二进制文件 可读可写
对上表做以下补充说明:
1. 程序中凡是用“r”打开一个文件时,表明该文件必须已经存在,且只 能从该文件读出数据。 2.用“w”打开的文件也只能向该文件写入数据。若打开的文件不存在, 则按照指定的文件名建立该文件,若打开的文件已经存在,则将该文件删 除,重建一个新文件。使用时要特别注意这一点。 3. 如果要向一个已经存在的文件后面追加新的信息,那只能用“a”方式 打开文件。但此时该文件必须是存在的,否则将会出错。
10.2.2文件的关闭
文件一旦使用完毕,应使用关闭文件函数 fclose把文件关闭,以避免 文件数据丢失等情况的发生。 fclose函数调用的一般形式为: fclose(FILE *fp); 其中,参数 fp 是文件型指针,通过 fopen() 函数已经获得,它指向某 个打开的文件。例如: fclose(fp); 上述语句的含义是关闭fp所指向的文件,同时自动释放分配给文件 的内存缓冲区。当正常完成关闭文件的操作时,fclose函数的返回值为 0,表示已正确关闭指定的文件;如返回非0值则表示有错误发生。
4.在打开一个文件之前,应该定义文件型指针,以便接收函数fopen返回的地址。 如果出错, fopen将返回一个空指针 NULL 。在程序中可以用这一信息来判别是否 完成打开文件的工作,并做相应的处理。 例如: if((fp=fopen(“file1”,”rb”))= =NULL) { printf(“\n error on open file1”); getch( ); exit(1); } 该程序段表示:如果返回的指针为空,则不能打开当前目录下的文件“file1”, 同时给出错误提示信息“error on open file1”。程序中的getch()函数的功能是从 键盘输入一个字符,该字符不在屏幕上显示。其实 getch() 在这里的作用是停留等 待,只有当用户从键盘敲任意键时,程序才继续执行,我们可以利用这个等待时间 来阅读出错提示,找到错误原因。当敲任意键后,执行语句“exit(1);”,从而退出 程序。
0010 0111 0001 0000
2015/9/8
00110001 00110000 00110000 00110000 00110000 0010 0111 0001 0000
1
第10章 文件
缓冲区文件系统:系统自动地在内存区为每一个正在使用的文件 开辟一个缓冲区。 程序数据区 输出文件缓冲区 输出 磁盘
可以看出,上面两个表的作用基本上是相同的,唯一的区别是 表10-2增加了一个表示二进制的字符“b”。其中,文件使用方式由r、 w、a、t、b和+六个字符组成,各字符的含义如表所示。
表10-3 文件使用方式中的字符及其含义
字母 r w 代表 read write 含义 读取数据 写入数据
a
t b +
#include <stdlib.h> #include <stdio.h> 例 10-1 int main() {FILE *fp; char ch,filename[10]; printf("请输入所用的文件名:"); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) // 打开输出文件并使fp指向此文件 { printf("无法打开此文件\n"); // 如果打开时出错,就输出"打不开"的信息 exit(0); // 终止程序*/ } ch=getchar( ); // 此语句用来接收在执行scanf语句时最后输入的回车符 printf("请输入一个准备存储到磁盘的字符串(以#结束):"); ch=getchar( ); // 接收从键盘输入的第一个字符 while(ch!='#') // 当输入'#'时结束循环 { fputc(ch,fp); // 向磁盘文件输出一个字符 putchar(ch); // 将输出的字符显示在屏幕上 ch=getchar(); // 再接收从键盘输入的一个字符 } fclose(fp); putchar(10); return 0; }
文件的打开与关闭
文件的打开(fopen 函数) FILE * fp; fp= fopen (文件名, 使用文件方式);
例如: fp=fopen ( "a1", "r");
文件名:参数为字符指针类型,实参为带路径的字符串。 使用文件方式:参见表10.1。 "r"、"w"、"a"、 "r+"、"w+"、"a+" "rb"、"wb"、"ab"、 …… 说明: "r"、"w"、"a"等打开文件的方式。 打开文件的常规方式: if ( ( fp=fopen ("file1","r"))==NULL) { printf("Cannot open this file \n"); exit(0); } 文件中的回车换行符内存中的换行符。
} FILE;
2015/9/8
level flags fd hold bsize buffer curp istemp token
……
……
3
10.2 文件的打开与关闭
由于文件的打开与关闭都是利用系统函数来实现的, 因此,在编写有关文件的程序时,应该在其中包含 “stdio.h”头文件。
10.2.1文件的打开
10.3
文件的读写
文件的读写操作由文件读写函数完成,常用的读写函数 有fputc、fgetc、fread、fwrite、fputs、fgets、fprintf、fscanf、 putw、getw等。
10.3.1 字符读写函数
读字符函数——fgetc函数 写字符函数——fputc函数
读字符函数——fgetc函数
输出
输入文件缓冲区
输入 输入
非缓冲区文件系统:系统不自动开辟确定大小的缓冲区,而由程 序为每个文件设定缓冲区。
2015/9/8
2
文件类型指针 typedef struct
{ short level; // 缓冲区“满”或“空”的程度
unsigned flags; // 文件状态标志 char fd; // 文件描述符 unsigned char hold; // 如无缓冲区不读取字符 short bsize; // 缓冲区的大小 unsigned char * buffer; // 数据缓冲区的位置 unsigned char *curp; // 指针,当前的指向 unsigned istemp; // 临时文件,指示器 short token; // 用于有效性检查
文件打开函数 fopen 用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中:“文件指针名”必须是被说明为FILE类型的指针变量; “文件名”是被打开文件的文件名;文件名通常是文件变量或文件 数组;“使用文件方式”是指文件的类型和操作要求。文件的使用 方式共有12种,表10.1给出了文本文件的符号和意义。
// 关闭文件 // 向屏幕输出一个换行符,换行符的ASCII代码为10
#include <stdio.h> #include <stdlib.h> 例 10-2 int main( ) {FILE *in,*out; char ch,infile[10],outfile[10]; // 定义两个字符数组,分别存放两个文件名 printf("输入读入文件的名字:"); scanf("%s",infile); // 输入一个输入文件的名字 printf("输入输出文件的名字:"); scanf("%s",outfile); // 输入一个输出文件的名字 if((in=fopen(infile,"r"))==NULL) // 打开输入文件 {printf("无法打开此文件\n"); exit(0); } if((out=fopen(outfile,"w"))==NULL) // 打开输出文件 {printf("无法打开此文件\n"); exit(0); } while(!feof(in)) // 如果未遇到输入文件的结束标志 {ch=fgetc(in); // 从输入文件读入一个字符,暂放在变量ch中 fputc(ch,out); // 将ch写到输出文件中 putchar(ch); // 将ch显示在屏幕上 } putchar(10); // 显示完全部字符后换行 fclose(in); // 关闭输入文件 fclose(out); // 关闭输出文件 return 0; }
相关文档
最新文档