《C语言及程序设计》程序阅读——文件操作
2015-07-06 22:31
579 查看
返回:贺老师课程教学链接
1、阅读下面的程序,写出输出结果,并上机运行程序进行对照
2、区分ASCII文件和二进制文件:阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。
(1)
(2)
3、阅读下面的程序,指出其功能,体会fseek()等与文件指针相关的函数的功能及其用法
(1)请说出程序的输出
(2)请说出运行程序后test.txt中的内容
1、阅读下面的程序,写出输出结果,并上机运行程序进行对照
#include "stdio.h" int main() { FILE *outfile,*infile; outfile=fopen("data.dat","w"); fprintf(outfile, "1111111111\n"); fprintf(outfile, "aaaaaaaaaa\n"); fprintf(outfile,"AAAAAAAAAA\n"); fprintf(outfile,"**********\n"); fclose(outfile); infile=fopen("data.dat","r"); char line[80]; int i=0; while(!feof(infile)) { i++; fgets(line,sizeof(line), infile); printf("%d: %s", i, line); } fclose(infile); return 0; }
2、区分ASCII文件和二进制文件:阅读并运行下面的两个程序,分别用记事本和二进制文件阅读器(请自行下载Binary Viewer等程序,或者用DOS中的Debug程序,并百度其用法)。查看其内容,并理解文件存储的原理。
(1)
#include <stdio.h> #include <stdlib.h> int main() { FILE *outfile; int a; outfile=fopen("f1.dat","w"); if(!outfile) { printf("open error!\n"); exit(1); } scanf("%d", &a); fprintf(outfile, "%d", a); fclose(outfile); return 0; }
(2)
#include <stdio.h> #include <stdlib.h> int main() { FILE *outfile; int a; outfile=fopen("f2.dat","wb"); if(!outfile) { printf("open error!\n"); exit(1); } scanf("%d", &a); fwrite(&a, sizeof(int), 1, outfile); fclose(outfile); return 0; }
3、阅读下面的程序,指出其功能,体会fseek()等与文件指针相关的函数的功能及其用法
(1)请说出程序的输出
#include <stdio.h> #include <stdlib.h> char *filename = "a.txt"; int main() { FILE *file; long l,m; file=fopen(filename,"rb"); if(!file) { printf("open error!\n"); exit(1); } l = ftell(file); //ftell函数返回文件位置指针相对于文件首的偏移量 fseek(file, 0, SEEK_END); m = ftell(file); fclose(file); printf("size of %s is %ld bytes.\n", filename, (m-l)); return 0; }
(2)请说出运行程序后test.txt中的内容
#include <stdio.h> #include <stdlib.h> int main() { FILE *outfile; long pos; outfile=fopen("test.txt","w"); if(!outfile) { printf("open error!\n"); exit(1); } fwrite ("This is an apple",16, 1, outfile); pos=ftell(outfile); fseek(outfile, pos-7, SEEK_SET); fwrite (" sam", 4, 1, outfile); fclose(outfile); return 0; }
相关文章推荐
- C++关于类的复习
- C++对象在内存中的分布
- 程序的流程控制(C++)
- C语言scanf函数输入时键盘缓冲区\n的问题[经典问题]
- 【Effective C++ 读书笔记】条款04:确定对象使用前已先被初始化
- 【读书笔记:C++ primer plus 第六版 中文版】第13章 类继承
- C语言基本数据类型及其扩展和可移植性问题
- 《C++ Primer Plus》学习笔记11
- C++学习篇(续)
- 20种设计模式 之 c++ 实现
- 初步C++运算符重载学习笔记<3> 增量递减运算符重载
- C++使用tinyxml来操作DOM对象(以svg格式为例,其他格式都类似操作)
- C++重载赋值运算符
- 求两个数的最大公约数 C++实现
- C/C++中的变量和静态变量
- 二叉树的建立与遍历(二)(c++实现)
- 【c语言】第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符
- C++该typeid和dynamic_cast
- 【Effective C++ 读书笔记】条款03: 尽量使用 const
- C++程序常见的性能调优方式