c/c++语言开发共享fgetc不工作C-重复返回相同的char

我正在使用C并尝试读取文件并将fgetc返回的字符保存在数组中。 问题是fgetc重复返回一个随机char。 评论中标记的位置。 例如,“wwwwwwwwwwww …”或“@@@@@@@@@@@@”。 任何帮助表示赞赏。 这是function:

void removeCategories(FILE *category, int *prodPrinted){ char more[16] = { '' }, hidden[17] = { '' }, temp = '', mdn[] = { "More Data Needed" }, hnl[] = { "Hidden non listed" }; int newLineCount = 0, i, ch = ''; do{ /*shift char in each list -> one*/ for (i = 16; i > 0; i--){ if (i <= 16){ hidden[i] = hidden[i - 1]; } if (i <= 15){ more[i] = more[i - 1]; } } more[0] = hidden[0] = ch = ( fgetc(category)); printf("%c", &ch); /*problem is here, prints random char repeatedly*/ if (strcmp(more, mdn) == 0 || strcmp(hidden, hnl) == 0){ prodPrinted[newLineCount] = 0; printf("%c", more[0]); /*test print*/ } if (ch == 'n'){ newLineCount++; } } while (ch != EOF); } 

    问题出在打印角色的电话中

     printf("%c", &ch); 

    这实际上是试图在堆栈上打印ch的地址(解释为char)。

    你想要的是:

     printf("%c", ch); 

    这将正确打印该堆栈地址的内容(作为char)

      以上就是c/c++开发分享fgetc不工作C-重复返回相同的char相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519480.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐