isprint函数:
头文件 | 原型 | 说明 | 返回值 |
---|---|---|---|
#include <ctype.h> | int isprint(int c); | 判断字符c是否为可打印字符(含空格)。 | 若判断成功则返回0以外的值(真),否则返回0。 |
#include <stdio.h>
#include <ctype.h>
int main(void){
int n;
unsigned long count = 0;
unsigned char buf[16];
FILE *fp;
char fname[FILENAME_MAX];
printf("文件名:");
scanf("%s", fname);
if ((fp = fopen(fname, "rb")) == NULL){
puts("文件打开失败。");
}else{
while ((n = fread(buf, 1, 16, fp)) > 0) {
int i;
printf("%08lx ", count);
for(i = 0; i < n; i++){
printf("%02X ", (unsigned)buf[i]);
}
if (n < 16){
for (i = n; i < 16; i++){
printf(" ");
}
}
for (i = 0; i < n; i++){
putchar(isprint(buf[i]) ? buf[i] : '.');
}
putchar('\n');
count += 16;
}
fclose(fp);
}
return 0;
}
运行结果: