例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。
2013-07-25 15:49
337 查看
解题思路:用fgetc 函数从键盘逐个输入字符,然后用fputc 函数写到磁盘文件即可。
#include <stdlib.h>
#include <stdio.h>
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); // 向屏幕输出一个换行符,换行符的ASCII代码为10
return 0;
}
例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。
解题思路:处理此问题的算法是:从file1.dat文件中逐个读入字符,然后逐个输出到file2.dat中。
#include <stdio.h>
#include <stdlib.h>
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;
}
#include <stdlib.h>
#include <stdio.h>
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); // 向屏幕输出一个换行符,换行符的ASCII代码为10
return 0;
}
例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。
解题思路:处理此问题的算法是:从file1.dat文件中逐个读入字符,然后逐个输出到file2.dat中。
#include <stdio.h>
#include <stdlib.h>
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;
}
相关文章推荐
- 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止
- 从键盘输入一些字符,逐个把它们送到键盘上去,直到输入一个"#"为止
- python学习===从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
- 一道小题:从键盘输入一些字符,逐个把他们写入文件,直到输入一个#为止
- 从键盘输入若干个字符,逐个存到磁盘文件data.txt中,直到输入’\n’为止,并将建立的文本文件的内容在存入文件的同时,在屏幕上显示出来:
- 从键盘输入一些字符,把它们送入磁盘上,直到输入#号时。
- 从键盘输入若干个字符,逐个存到磁盘文件中,直到输入‘\n’为止,并将建立的文本文件的内容在存入文件的同时,在屏幕上显示出来。。
- 编写一个程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大写字符转换为小写,将小写字符转换为大写(别忘了cctype函数系列)
- 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
- 编写一个程序,从标准输入读取一些字符,并把它们写到标准输出上。它同时应该计算checksum值,写在后面
- 猜数:首先生成一个介于1-100之间的整数,从键盘不断输入数值直到该数值与生成的那个数相符为止,并打印出猜数的次数。
- 编写一个程序,用于接收用户输入的数,然后显示从0到该数为止表示的所有字符,询问用户是否愿意再次继续同样的过程
- 问题六十四: 不断从键盘中输入实数,边输入边累加,直到它们的和超过1000时为止。
- 从键盘输入若干行字符(每行长度不等),输入后把它们存储到磁盘文件中。
- 编写了一个服务器端的程序实现在客户端输入字符然后在控制台上显示,直到输入"END"为止,让你写出客户端的程序;
- 从键盘输入一串字符,然后把它们转存到磁盘文件上。
- 人民币金额大写 在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误
- C primer plus 第七章 练习2: 编写一个程序,该程序读取输入直到遇到#字符。使程序打印每个输入的字符以及它的十进制ASCII码。每行打印8个字符/编码对。
- 第19课时,实践1,编写一个程序,从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值
- 定义一个整型变量赋予1~100的值,要求用户猜这个数,并把结果提示给用户直到猜对为止。