大只鹅 2022-09-20 16:47 采纳率: 85.7%
浏览 17
已结题

如何查看缓冲区里面的数据变化

本人使用vs2010,不知如何查看缓冲区的数据变化,就是想知道里面有没有换行符之类的。

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-09-20 18:04
    关注

    仅供参考:

    #pragma warning(disable:4996) //开头加这句或项目、属性、配置属性、C/C++、预处理器、预处理器定义中添加“_CRT_SECURE_NO_WARNINGS”
    #include <stdio.h>
    void dumpFILE(FILE *fp) {
        printf("     *_ptr:");
        for (int i=0;i<fp->_cnt;i++) {
            printf("\\x%02x",(unsigned)((fp->_ptr)[i]));
        }
        printf("\n");
        printf("      _cnt:%d\n",  fp->_cnt      );
        printf("    *_base:%c\n",*(fp->_base    ));
        printf("     _flag:%d\n",  fp->_flag     );
        printf("     _file:%d\n",  fp->_file     );
        printf("  _charbuf:%d\n",  fp->_charbuf  );
        printf("   _bufsiz:%d\n",  fp->_bufsiz   );
        if (fp->_tmpfname) {
            printf("*_tmpfname:%s\n",fp->_tmpfname);
        } else {
            printf("*_tmpfname:null\n");
        }
        printf("-------------\n");
    }
    int main() {
        int a,b;
    
        a=0;b=0;
        dumpFILE(stdin);
        printf("a:%d,b:%d\n",a,b);
        scanf("%d",&a);
        printf("a:%d,b:%d\n",a,b);
        dumpFILE(stdin);
        scanf("%d",&b);
        printf("a:%d,b:%d\n",a,b);
        dumpFILE(stdin);
        return 0;
    }
    //d:\new\test\Debug>test
    //     *_ptr:
    //      _cnt:0
    //    *_base:
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //a:0,b:0
    //1
    //a:1,b:0
    //     *_ptr:\x0a
    //      _cnt:1
    //    *_base:1
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //2
    //a:1,b:2
    //     *_ptr:\x0a
    //      _cnt:1
    //    *_base:2
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //
    //d:\new\test\Debug>test
    //     *_ptr:
    //      _cnt:0
    //    *_base:
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //a:0,b:0
    //1 2
    //a:1,b:0
    //     *_ptr:\x20\x32\x0a
    //      _cnt:3
    //    *_base:1
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //a:1,b:2
    //     *_ptr:\x0a
    //      _cnt:1
    //    *_base:1
    //     _flag:257
    //     _file:0
    //  _charbuf:0
    //   _bufsiz:4096
    //*_tmpfname:null
    //-------------
    //
    //d:\new\test\Debug>
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 创建了问题 9月20日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏