【习题8-13】提示:根据文本文件和二进制文件的特点进行回答。 【习题8-14】:文件是指存储在外部介质上一组相关数据的集合。根据文件的组
织形式,文件可以分为ASCII文件和二进制文件。
【习题8-15】:对文件的操作的步骤:先打开,后读写,最后关闭。 三、编写程序题
【习题8-16】参考程序:
#include \#include \main() {
FILE *fp1,*fp2,*fp3; char str[128];
if((fp1=fopen(\ {
printf(\ exit(0); }
if((fp2=fopen(\ {printf(\ exit(0); }
if((fp3=fopen(\ {printf(\ exit(0); }
while((strlen(fgets(str,128,fp1)))>0) {
fputs(str,fp3); printf(\ }
while((strlen(fgets(str,128,fp2)))>0) {fputs(str,fp3); printf(\ }
fclose(fp1); fclose(fp2); fclose(fp3); }
【习题8-17】:参考程序:
#include \
main(int argc,char *argv[]) {
FILE *fp;
int ch,sign=0,count=0; if(argc!=2) {
printf(\ exit(1); }
fp=fopen(argv[1],\ if(!fp) {
printf(\ exit(1); }
ch=getc(fp); while(ch!=EOF) {
if(ch>160) if(sign) {
sign=0; count++; } else sign=1; ch=getc(fp); }
fclose(fp);
printf(\}
【习题8-18】:参考程序:
#include \struct stud {
char id[10]; char name[10]; char birth[9]; float inscore; };
struct studc {
char id[10]; char name[10]; float cmark; };
main() {
int i=5;
FILE *fps,*fpd;
struct stud data[5]={{\ {\ {\ {\ {\ struct studc temp;
fps=fopen(\ if(!fps)
{ printf(\ exit(1); }
fwrite(data,sizeof(struct stud),5,fps); fclose(fps);
fps=fopen(\ if(!fps)
{printf(\ exit(1); }
fpd=fopen(\ if(!fpd) {
printf(\ exit(1); }
printf(\ for(i=0;i<5;i++) {
fread(&tmp,sizeof(struct stud),1,fps);
printf(\ scanf(\ strcpy(temp.id,tmp.id);
strcpy(temp.name,tmp.name);
fwrite(&temp,sizeof(struct studc),1,fpd); }
printf(\ fclose(fps); fclose(fpd); }