Online Compiler C

#include <stdio.h> int main() { char ch; int count = 0; while ((ch = getchar()) != EOF && ch != '.') { if (ch >= '0' && ch <= '9') { count++; } } printf("%d\n", count); return 0; }
这段代码的功能是:从标准输入读取字符,直到遇到文件结束符(EOF)或句点(.)为止,并统计其中数字字符('0'到'9')的个数,最后输出这个个数。

- 注意变量 ch 的类型是 char,但 getchar() 返回的是 int 类型。当 EOF 被赋值给 char 时,可能会发生截断,导致在某些系统上无法正确判断文件结束。建议将 ch 的类型改为 int。
- 循环条件中同时检查 EOF 和 '.',但 '.' 本身也是一个字符,如果输入中出现了 '.',循环会提前结束,这可能是你期望的行为,但需要确认是否真的需要在遇到句点时停止统计。