我在读取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