標籤:

一個計科小白的每日編程打卡18.07.25

一個計科小白的每日編程打卡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:編程 |