16.7 请调用fputs函数,把10个字符串输出到文件中;再从从文件中读入这10个字符串放在一个字符串数组中;最后把字符串数组中的字符串输出到终端屏幕,以检验所有操作是否正确。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
#define M 10
void fun1(char s[][M])
{ FILE *pfout; int i;
if((pfout=fopen("D:\\16661\\Desktop\\file_a3.txt","w"))==NULL)
{ printf("找不到文件夹");exit(0);}
for(i=0;i<N;i++)
{ printf("请输入第%d个字符串:",i+1);gets(s[i]);
fputs(s[i],pfout);
fputc('\n',pfout);
}
fclose(pfout);
}
void fun2(char s[][M])
{ FILE *pfin;
int i=0;
char c;
if((pfin=fopen("D:\\16661\\Desktop\\file_a3.txt","r"))==NULL)
{ printf("找不到文件夹");exit(0);}
fgets(s[i],M-1,pfin);
while(!feof(pfin))
{ c=s[i][strlen(s[i])-1];
if(c=='\n')s[i][strlen(s[i])-1]=0;
puts(s[i]);
i++;
fgets(s[i],M-1,pfin);
}
fclose(pfin);
}
main()
{
char s[N][M];
fun1(s);
fun2(s);
printf("%s",s[0]);
}
16.8 从键盘输入10个浮点数,以二进制形式存入文件中。再从文件中读出数据显示在屏幕上。
#include<stdio.h>
#include<stdlib.h>
#define N 10
void write()
{ FILE *pfout;
float a[N];
int i;
for(i=0;i<N;i++)scanf("%f",&a[i]);
if((pfout=fopen("D:\\16661\\Desktop\\file_a3.txt","w"))==NULL)
{ printf("不能打开该文件");exit(0);}
for(i=0;i<N;i++)
fwrite(&a[i],sizeof(float),1,pfout);
fclose(pfout);
}
void read(float *a)
{ FILE *pfin;
int i;
if((pfin=fopen("D:\\16661\\Desktop\\file_a3.txt","r"))==NULL)
{ printf("不能打开该文件");exit(0);}
for(i=0;i<N;i++)
fread(&a[i],sizeof(float),1,pfin);
fclose(pfin);
}
main()
{ float a[N];
int i;
write();
read(a);
printf("输出数组中的数据:");
for(i=0;i<N;i++)printf("%f\t",a[i]);
}
|