实验编号:08四川师大实验报告2016年月日
计算机科学学院级06班实验名称:文件操作_
姓名:仁青拉初_____ 学号:2014110637 指导老师:_刘洪_ 实验成绩:_____
实验八文件操作实验
(验证性综合性实验2学时)
1、目的要求:
(1)掌握文件的打开和关闭。
(2)精通文件的读写操作。
(3)了解文件的定位操作及文件的检测函数。
(4)掌握文件的应用。
(5)编写实验报告。
2、实验内容(参考实验指导书):
(1)编写一个程序,读取磁盘上的一个C语言程序文件,要求加上注释后再存放到磁盘上,文件可以另外命名。
(2)编写一个程序,将文件old.txt从第10行起存放到new.txt中。
(3)有一个整数文件,读取其中的数值,如果为奇数加1,如果为偶数减1,然后存放到新的文件中去。
(4)二进制文件d.dat中包含若干个整数,用键盘输入一个整数,请在文件中找出该整数的下一个数并输出。
若找不到则输出“Not Found!”。
一.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)
(1)编写一个程序,读取磁盘上的一个C语言程序文件,要求加上注释后再存放到磁盘上,文件可以另外命名。
#include<stdio.h>
#include<stdlib.h>
void main() {
int i=0,j;
char c,a[80]={"dsaff"};
FILE *p; if((p=fopen("E:\\123.txt","r"))==NULL)
fscanf(p,"%s",a);
fclose(p);
if((p=fopen("E:\\123.txt","w"))==NULL){
printf(" Can't open file\n");
exit(1);
}
fputs("/*",p);
fprintf(p,a);
fputs("*/",p);
fclose(p); }
(2)编写一个程序,将文件old.txt从第10行起存放到new.txt中。
#include<stdio.h>
#include<stdlib.h>
void main() {
int i=0;
char c;
FILE *p1,*p2;
if((p1=fopen("E:\\old.txt","r"))==NULL) {
printf(" Can't open file\n");
exit(1); }
if((p2=fopen("E:\\new.txt","w"))==NULL) {
printf(" Can't open file\n");
exit(1); }
while(!feof(p1)) {
if((c=fgetc(p1))=='\n')
i++;
if(i>=9) {
fputc(c,p2);
}
}
system("pause");
fclose(p1);
fclose(p2); }
(3)有一个整数文件,读取其中的数值,如果为奇数加1,如果为偶数减1,然后存放到新的文件中去。
#include<stdio.h>
#include<stdlib.h>
void main() {
int i=0;
char c;
FILE *p1;
if((p1=fopen("E:\\123.txt","r"))==NULL) {
printf(" Can't open file\n");
exit(1);
}
while(!feof(p1)) {
c=fgetc(p1);
if((c-'0')%2==0)
i--;
else if((c-'0')%2==1)
i++; }
fclose(p1);
printf("%d\n",i); }
(4)二进制文件d.dat中包含若干个整数,用键盘输入一个整数,请在文件中找出该整数的下一个数并输出。
若找不到则输出“Not Found!”。
#include<stdio.h> int main() {
FILE *pf;
int x,y,j;
int i=0;
int a[8]={3,4,6,8,7,1,2,9};
pf = fopen("E:\\d.dat","wb");
if( pf==NULL ){
printf("open file error\n"); } else{
fwrite((char *)a,sizeof(int),8,pf);
fclose(pf); }
if((pf=fopen("E:\\d.dat","rb"))==NULL){
printf("open file error\n");
} else{ scanf("%d",&x);
while(!feof(pf)){
fread((char*)&y,sizeof(int),1,pf);
i++;
if(y==x)
break;
}
fread((char*)&y,sizeof(int),1,pf);
if(!feof(pf)){
printf("%d在第%d个,下一个数字为%d\n",x,i,y); }
else{
printf("not found or it last num,no next\n"); }
fclose(pf); }
}
二.实验结果的分析与评价(该部分如不够填写,请另加附页)
掌握了文件的打开和关闭。
精通了文件的读写操作。
了解了文件的定位操作及文件的检测函数。
掌握了文件的应用
注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。