例10.5 有一个磁盘文件,内有一些信息。要求第一次将它的内容显示在屏幕上,第二次把它复制到另一文件上。
2013-07-26 14:24
696 查看
解题思路:
因为在第一次读入完文件内容后,文件标记已指到文件的末尾,如果再接着读数据,就遇到文件结束标志,feof函数的值等于1(真),无法再读数据
必须在程序中用rewind函数使位置指针返回文件的开头
文件位置标记的定位
可以强制使文件位置标记指向指定的位置
可以用以下函数实现:
(1)用rewind函数使文件标记指向文件开头
rewind函数的作用是使文件标记重新返回文件的开头,此函数没有返回值。
因为在第一次读入完文件内容后,文件标记已指到文件的末尾,如果再接着读数据,就遇到文件结束标志,feof函数的值等于1(真),无法再读数据
必须在程序中用rewind函数使位置指针返回文件的开头
文件位置标记的定位
可以强制使文件位置标记指向指定的位置
可以用以下函数实现:
(1)用rewind函数使文件标记指向文件开头
rewind函数的作用是使文件标记重新返回文件的开头,此函数没有返回值。
#include<stdio.h> int main() {FILE *fp1,*fp2; fp1=fopen("file1.dat","r"); // 打开输入文件 fp2=fopen("file2.dat","w"); // 打开输出文件 while(!feof(fp1)) putchar(getc(fp1)); // 逐个读入字符并输出到屏幕,feof函数是判断文件位置标记是否到文件末尾 putchar(10); // 输出一个换行 rewind(fp1); // 使文件位置指示器返回文件头 while(!feof(fp1)) putc(getc(fp1),fp2); // 从文件头重新逐个读字符,输出到file2文件 fclose(fp1);fclose(fp2); return 0; }
相关文章推荐
- 有两个磁盘文件“A"和”B",各存放一行字母,先要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C"中去。
- 从键盘输入若干个字符,逐个存到磁盘文件中,直到输入‘\n’为止,并将建立的文本文件的内容在存入文件的同时,在屏幕上显示出来。。
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- C键盘输入一行字符,写入一个文件,再把该文件内容读出显示在屏幕上。
- java把一个文件的内容复制到另外一个文件
- 编写一个应用程序实现文件的复制。使用格式:java Copy 源文件目标文件,功能是将源文件的内容复制到目标文件。
- 打开一个文件并把他的内容复制给另一个文件
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- (六)两种方式将一个文件的内容复制到另一个文件(第二种方式效率更高,第一种一个字符一个字符的读写,第二种一个数组一个数组的读写)
- 第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 复制一个空洞文件且忽略掉其空洞内容
- 一个文件的部分内容不显示
- shell 练习题02 一个文件里将内容三行显示为一行
- oc 文件管理NSFileManager,文件读写NSFileHandle ,设计一个文件管理类将一个文件复制到另一个文件,由于文件过大要求每次复制100长度,通过NSFileHandle 来操作,并
- 创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来
- c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
- php中将一段数据存到一个txt文件中并显示其内容
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- linux下复制一个文件的内容到另一个文件