【发布时间】:2024-01-22 17:01:01
【问题描述】:
为什么用这段代码编写的while循环没有正文?它有什么作用? 索引和长度都是整数,我正在从 txt 文件中读取。
// ignore alphabetical strings too long to be words
if (index > LENGTH)
{
// consume remainder of alphabetical string
while ((c = fgetc(fp)) != EOF && isalpha(c));
// prepare for new word
index = 0;
}
【问题讨论】:
-
作品的主体,在
while声明中。它会跳过文件中的字母字符。 -
why? 因为循环中没有什么可做的它有什么作用? 评论说什么:消耗剩余的字母字符串,即阅读直到找到 EOF 或非字母字符
-
它设置'c'等于文件的内容。但是,从显示的代码来看,除了被设置为文件的值之外,c 看起来没有使用。
-
这对老猫来说是显而易见的事实并没有使它成为一个质量差的问题。紫外线
-
注意:
int c; ....while ((c = fgetc(fp)) != EOF && isalpha(c));可以简化为while (isalpha(c = fgetc(fp)));,因为EOF不是 alpha 并且isalpha(EOF)已定义。
标签: c syntax while-loop fgetc