啦啦啦拉拉裤 2021-11-07 11:16 采纳率: 69.1%
浏览 45
已结题

C语言问题打印文件的字节数

请问这个怎么做?编写一个 C 程序,print_bytes,它接受一个参数,一个文件名,它应该读取指定的文件并为文件的每个字节打印一行。该行应以十进制和十六进制显示字节。如果该字节是 ASCII 可打印字符,则还应打印其 ASCII 值。
假设 ASCII 可打印字符是那些ctype.h函数isprint返回非零值的字符。

img

img

  • 写回答

1条回答 默认 最新

  • 关注

    代码如下:

    #include <stdio.h>
    #include <ctype.h>
    int main(int argc, char *argv[])
    {
        int i=0;
        unsigned char ch;
        if(argc != 2) 
        {
            printf("参数不满足要求"); //C语言参数包含程序名
            return 0;
        }
        FILE *fp = fopen(argv[1],"r"); 
        if (fp == 0)
        {
            printf("%s文件打开失败\n",argv[1]);
            return 0;
        }
        while ((ch = fgetc(fp))!= EOF)
        {
            if(isprint(ch))
                printf("byte %4d:%4u 0x%02x '%c'\n",i,ch,ch,ch);
            else
                printf("byte %4d:%4u 0x%02x\n",i,ch,ch);
            i++;
        }
        fclose(fp);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了