您的位置:首页 > 编程语言 > C语言/C++

文件查看器(C语言)

2017-02-05 15:50 127 查看
直接,代码如下:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAXLEN 100

const int DISPLAY = 80;
const int PAGE_LENGTH = 20;

int main(int argc,char *argv[]){

char filename[MAXLEN];
FILE *pfile = NULL;

unsigned char buffer[DISPLAY/4-1];
int count = 0;
int lines = 0;

//要求输入文件名
if(argc == 1){
printf("请输入文件名:\n");//该情况需要sudo权限执行程序,才能访问其他文件夹文件.
scanf("%s",filename);
//printf("%s\n",filename);
}else{
strcpy(filename,argv[1]);
printf("执行程序:%s\n",argv[0]);
}

//打开文件
if(!(pfile = fopen(filename,"rb"))){
printf("未能打开该文件.\n");
return -1;
}

//读取并显示文件内容
while(!feof(pfile)){
if(count < sizeof buffer)
buffer[count++] = (unsigned char)fgetc(pfile);
else{
for(count = 0;count < sizeof buffer; count++){
printf("%02X ",buffer[count]);
}
printf("| ");

for(count = 0;count < sizeof buffer; count++){
printf("%c",isprint(buffer[count])?buffer[count]:'.');
}
printf("\n");
count = 0;

if(!(++lines%PAGE_LENGTH))
if(getchar() == 'E')
return 0;
}

}

//显示最后一行
for(int i = 0;i < sizeof buffer; i++){
if(i < count)
printf("%02X ",buffer[i]);
else
printf("   ");
}
printf("| ");

for(int i = 0;i < count; i++){
printf("%c",isprint(buffer[i])?buffer[i]:'.');
}
printf("\n");

//结束
fclose(pfile);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 ubuntu