一個計科小白的每日編程打卡18.07.25
/*reverse.c ---倒序顯示文件內容*/
#include<stdio.h>
#include<stdlib.h>
#define CNTL_Z 32 /* *DOS文本文件中的文件結尾標記*/
#define SLEN 81
int main()
{
char file[SLEN];
char ch;
FILE *fp;
long count,last;
puts("Enter the name of the file to be processed:");
scanf("%80s",file);
if((fp=fopen(file,"rb"))==NULL)
{
printf("reverse cant open %s
",file);
exit(EXIT_FAILURE);
}
fseek(fp,0L,SEEK_END);/*定義到文件末尾*/
last=ftell(fp);
for(count=1L;count<=last;count++)
{
fseek(fp,-count,SEEK_END);/*回退*/
ch=getc(fp);
if(ch!=CNTL_Z&&ch!=
)/*MS-DOS文件*/
putchar(ch);
}
putchar(
);
fclose(fp);
return 0;
}
/運行結果如下(The results are as follows):/
/*可以看到文件被逆序輸出,因為文件中包含漢字所以出現亂碼的現象;
fseek(fp,-count,SEEK_END);
-count 和 SEEK_END表示從fp文件末端回退count個位元組*/
推薦閱讀:
※開發孩子智力的ScratchJr兒童編程軟體
※初學者如何上手Lede/OpenWrt?需要具備哪些基礎知識?
※典型 難加工零件工藝分析及編程、加工,全在這裡了
※Leetcodes Solution 36 Valid Sudoku
※C++基礎練習:分治法排序代碼
TAG:編程 |