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.关闭文件。
  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; }
相关文档
最新文档