设为首页 加入收藏

TOP

第10章 对文件的输入输出(四)
2019-06-27 00:06:03 】 浏览:341
Tags:文件 输入 输出
当输入′#′时结束循环

{ fputc(ch,fp);      //向磁盘文件输出一个字符

putchar(ch);     //将输出的字符显示在屏幕上

ch=getchar();      //再接收从键盘输入的一个字符

}

fclose(fp);      //关闭文件

       putchar(10);                                         //向屏幕输出一个换行符

return 0;

}

说明:

用来存储数据的文件名可以在fopen函数中直接写成字符串常量形式 ,也可以在程序运行时由用户临时指定。

 

用fopen函数打开一个“只写”的文件(“w”表示只能写入不能从中读数据),若成功,函数返回该文件所建立的信息区的起始地址给文件指针变量fp。若失败,则显示“无法打开此文件”,用exit函数终止程序运行,此函数在stdlib.h头文件中。

 

用getchar函数接收用户从键盘输入的字符。注意每次只能接收一个字符。

运行结果:

 

[例] 将一个磁盘文件中的信息复制到另一个磁盘文件中。今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。

#include <stdio.h>

#include <stdlib.h>

int main()

{ FILE *in,*out;       //定义指向FILE类型文件的指针变量

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); }

ch=fgetc(in);              //从输入文件读入一个字符,赋给变量ch

while(!feof(in))            //如果未遇到输入文件的结束标志

{ fputc(ch,out);          //将ch写到输出文件

putchar(ch);            //将ch显示到屏幕上

ch=fgetc(in);           //再从输入文件读入一个字符,赋给变量ch

}

putchar(10);      //显示完全部字符后换行

fclose(in);       //关闭输入文件

fclose(out);      //关闭输出文件

return 0;

}

说明:

在访问磁盘文件时,是逐个字符(字节)进行的,为了知道当前访问到第几个字节,系统用“文件读写位置标记”来表示当前所访问的位置。开始时“文件读写位置标记”指向第1个字节,每访问完一个字节后,当前读写位置就指向下一个字节,即当前读写位置自动后移。

 

为了知道对文件的读写是否完成,只须看文件读写位置是否移到文件的末尾。

运行结果:

 

10.3.2 怎样向文件读写一个字符串

读写一个字符串的函数:

函数名

调用形式

功能

返回值

fgets

fgets(str,n,fp)

从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中

读成功,返回地址str,失败则返回NULL

fputs

fputs(str,fp)

把str所指向的字符串写到文件指针变量fp所指向的文件中

输出成功,返回0;否则返回非0值

说明:

fgets中最后一个字母s表示字符串(string)。见名知义,fgets的含义是: 从文件读取一个字符串。

 

fgets函数的函数原型为:

char *fgets(char*str, int n, FILE*fp);

其作用是从文件读入一个字符串。调用时可以写成下面的形式:

fgets(str,n,fp);

解释:

其中,n是要求得到的字符个数,但实际上只从fp所指向的文件中读入n-1个字符,然后在最后加一个′\0′字符,这样得到的字符串共有n个字符,把它们放到字符数组str中。如果在读完n-1个字符之前遇到换行符“\n”或文件结束符EOF,读入即结束,但将所遇到的换行符“\n”也作为一个字符读入。若执行fgets函数成功,则返回值为str数组首元素的地址,如果一开始就遇到文件尾或读数据出错,则返回NULL。

fputs函数的函数原型为:

int fputs (char *str, FILE *fp);

其作用是将str所指向的字符串输出到fp所指向的文件中。调用时可以写成:

fputs("China",fp);

解释:

把字符串″China″输出到fp指向的文件中。fputs函数中第一个参数可以是字符串常量

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇leadcode的Hot100系列--序 下一篇第9章 用户自己建立数据类型

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目