1 题目
功能:
描述:
用 fgetc 函数从键盘逐个输入字符,然后用 fputc函数写到磁盘文件即可
2 思路
用来存储数据的文件名可以在fopen函数中直接写成字符串常量形式(如指定"1"),也可以在程序运行时由用户临时指定。本程序采取的方法是由键盘输入文件名。为此设立一个字符数组filename,用来存放文件名。运行时,从键盘输入磁盘文件名"ex043_file.dat", 操作系统就新建立一个磁盘文件ex043_file.dat,用来接收程序输出的数据
用fopen函数打开一个"只写"的文件("w"表示只能写入不能从中读数据),如果打开文件成功,函数的返回值是该文件所建立的信息区的起始地址,把它赋给指针变量fp(fp已定义为指向文件的指针变量)。如果不能成功地打开文件,则在显示器的屏幕上显示"无法打开此文件",然后用exit函数终止程序运行
exit是标准C的库函数,作用是使程序终止,用此函数时在程序的开头应包含 <stdlib.h> 头文件
用getchar函数接收用户从键盘输入的字符。注意每次只能接收一个字符。今输入字符串"公众号:计算广告生态"是用来向程序表示:输入的字符串到此结束。用什么字符作为结束标志是人为的,由程序指定的,也可以用别的字符(如或其他字符)作为结束标志。但应注意:如果字符串中包含"#",就不能用"# "作结束标志
执行过程是:先从键盘读入一个字符,检查它是否如果是,表示字符串已结束,不执行循环体。如果不是'#',则执行一次循环体,将该字符输出到磁盘文件filel.datₒ然后在屏幕上显示出该字符,接着再从键盘读入一个字符。如此反复,直到读入'#'字符为止。这时,程序已将"公众号:计算广告生态"写到以"filel. dat"命名的磁盘文件中了,同时在屏幕上也显示出了这些字符,以便核对。
ex043_file.dat 中是否确实存储了这些内容,可以在资源管理器中,按记事本的打开方式打开文件,或者在其他系统有其他查看方式
3 代码
#include <stdio.h>
#include <stdlib.h>
/**
功能:关闭所有打开的文件
描述:
用 fgetc 函数从键盘逐个输入字符,然后用 fputc函数写到磁盘文件即可
**/
intmain(intargc,charconst*argv[]) {
FILE*fp;
charch,filename[10];
printf("请输入要操作的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) { // 打开输入文件并使 fp 指向此文件
printf("无法打开此文件!\n");
exit(0); // 终止程序
}
ch=getchar(); // 用来接收最后输入的回车符
printf("请输入一个准备存储到磁盘的字符串(以'#'结束)\n");
ch=getchar(); // 用来接收从键盘输入的第一个字符
while(ch!='#') { // 当输入"#"时结束循环
fputc(ch,fp); // 用来向磁盘输出第一个字符
putchar(ch); // 将输出的字符显示在屏幕上
ch=getchar(); // 接收从键盘输入的一个字符
}
fclose(fp); // 关闭文件
putchar(10); // 向屏幕输出一个换行符
return0;
}
示例结果:
$ gccex043.c-odemo
$ ./demo
请输入要操作的文件名:
ex043_file.dat
请输入一个准备存储到磁盘的字符串(以'#'结束)
公众号:计算广告生态
公众号:计算广告生态
#
文件中的显示:
ex043_file.dat:
公众号:计算广告生态