普通网友 2021-08-29 08:14 采纳率: 80%
浏览 39
已结题

输出乱码问题,最后输出了我不想要的字符

img

  • 写回答

2条回答 默认 最新

  • 关注

    c 里面的 string 是用 \0 做结尾
    你定义了 char 20 个,可接收最多 19 char 留一个给 \0
    但如只输入 test 4 个 char 实际只用了 char 20 里的 5 个
    而 6-20 就是内存里的不明值
    因为你没有任何额外处
    而你又固定把 char 20 都打印出来
    所以有一堆6-20不明值也打印出来

    
    reakpoint 2, main () at ten.c:20
    20        for(i=0; i<5; i++) {
    (gdb) p s
    $2 = {"test001\ntest002\ntest", "003\ntest004\ntest005\n", "test003\000\246\343\377\377\377\177\000\000\215TUU", "test004\000\377\177\000\000@TUUUU\000", "test005\000`QUUUU\000\000\260\344\377\377"}
    (gdb) 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 8月29日

悬赏问题

  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答