2006.10.29

 #include <stdio.h>
#include "malloc.h"
#include "stdlib.h"
#define NULL 0
#define LINE 100
#define COLUMN 100
char **ReadFile(FILE *infile,int *line);


main()
{
FILE *infile;
char *c,**p;
int i,j=0,n;
clrscr();
printf("这个程序将文件倒序输出。/n");
while(1)
{
 printf("File name:");
 gets(c);
 infile=fopen(c,"r");
 if(infile!=NULL)break;
 printf("File %s not found--Try again./n",c);
}
p=ReadFile(infile,&n);
fclose(infile);
if(p==NULL)printf("Error:No enough memory!/n");
else{
 for(i=n;i>=0;i--){
   while(1)
   {
   if(p[i][j]=='/n')break;
   printf("%c",p[i][j]);
    j++;
   }
   j=0;
   printf("/n");
 }
}
getch();
}

char **ReadFile(FILE *infile,int *line)
{
 int ch,i=0,j=0,li=LINE;
 char **arr;
 arr=(char *)malloc(li*COLUMN);
 if(arr==0)return NULL;
 while((ch=getc(infile))!=EOF)
 {
  arr[i][j]=ch;
    j++;
  if(ch=='/n')
  {
   i++;
   j=0;
   if(i==li)
   {
    li*=2;
    arr=(char *)realloc(arr,li*COLUMN);
     if(arr==0)return NULL;
   }
  }

 }
  arr[i][j]='/n';
  arr[i+1][0]=NULL;
  *line=i;
  return arr;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值