c/c++语言开发共享无法读取C中的EOF字符

我在读取C中最后一个输入的EOF字符时遇到问题

j=0; while(*(name2+j)!='n'){ if(*(name2+j) == ' '){ j++; continue; } d[tolower(*(name2+j))]++; j++; } 

对于最后一个输入,没有换行符号,对于非常小的字符串,j的值被设置为非常大的数字。 所以,考虑到文件的结尾,我修改了while条件

 while(*(name2+j)!='n' && (*(name2+j))!=EOF) 

但我仍然遇到同样的问题。 有人能说出我在这里遗失了什么吗? 谢谢。

    EOF是一个char范围之外的整数值(因为它的目的是表明没有 char存在),所以如果你想能够将值与EOF进行比较,那么你需要检索并存储该值为一个int而不是一个char

    你是如何声明name2并设置它的? char不能包含EOF ,但是如果你通过标准输入函数得到它,你应该有''终止它。 如果是这样,只需将条件更改为

     while (name2[j] && name2[j]!='n') 

      以上就是c/c++开发分享无法读取C中的EOF字符相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

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

      ctvol管理联系方式QQ:251552304

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

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

      精彩推荐