// 实验 九 文件
//P62 二、
//1).编写程序:读入一字符串(以*结束),写入文本文件a.dat中。
#include <stdio.h>
void main()
{
char c;
FILE *fp;
if((fp=fopen("a.dat","w"))==NULL)
{
printf("Open file a.dat error!
\n");
exit(0);
}
c=getchar();
while(c!='*')
{
fputc(c,fp);
c=getchar();
}
fclose(fp);
}
//2)编写程序:从前面生成的文件a.dat中读取字符,将其中的大写字母转为小写字母后存放到文件b.dat中,并输出结果。
#include <stdio.h>
void main()
{
char c;
FILE *fpa,*fpb;
if((fpa=fopen("a.dat","r"))==NULL)
{
printf("Open file a.dat error!
\n");
exit(0);
}
if((fpb=fopen("b.dat","w"))==NULL)
{
printf("Open file b.dat error!
\n");
exit(0);
}
c=fgetc(fpa);
while(c!=EOF)
{
if(c>='A'&&c<='Z')
{
fputc(c-'A'+'a',fpb);
putchar(c-'A'+'a');
}
else
{
fputc(c,fpb);
putchar(c);
}
c=fgetc(fpa);
}
printf("\n\n");
fclose(fpa);
fclose(fpb);
}
//3)编写程序:将N个同学某门课的成绩按每行8个写入文件score.dat中,并将生成的磁盘文件score.dat的所有内容读出,显示在屏幕上。
//方法1
#include <stdio.h>
#define N 10
void main()
{
double sc[N];
int i;
FILE *fp;
if((fp=fopen("score.dat","w"))==NULL)
{
printf("Open file score.dat
error! \n\n");
exit(0);
}
printf("请输入%d个学生某门课的成绩:\n",N);
for(i=0;i<N;i++)
{
scanf("%lf",&sc[i]);
fprintf(fp,"%.1f
",sc[i]);
if((i+1)%8==0)
fprintf(fp,"\n");
}
rewind(fp);//将文件指针返回文件头部
for(i=0;i<N;i++)
{
fscanf(fp,"%.1f",&sc[i]);
printf("%.3f ",sc[i]);
if((i+1)%8==0)
printf("\n");
}
printf("\n\n");
fclose(fp);
}
//方法2
#include <stdio.h>
#define N 10
void main()
{
double sc[N];
int i;
FILE *fp;
if((fp=fopen("score.dat","wb"))==NULL)
{
printf("Open file score.dat
error! \n\n");
exit(0);
}
printf("请输入%d个学生某门课的成绩:\n",N);
for(i=0;i<N;i++)
{
scanf("%lf",&sc[i]);
fwrite(&sc[i],sizeof(double),1,fp);
if((i+1)%8==0)
fprintf(fp,"\n");
}
rewind(fp);//将文件指针返回文件头部
for(i=0;i<N;i++)
{
fread(&sc[i],sizeof(double),1,fp);
printf("%.3f ",sc[i]);
if((i+1)%8==0)
printf("\n");
}
printf("\n\n");
fclose(fp);
}
http://s14/middle/5f2925ff4898a4b1c3f9d&690参考答案" TITLE="《C程序设计》上机实验9 参考答案" />
加载中,请稍候......