不使用數組或字符串的限制有點困難,并且會阻止流處理,因為您必須能夠向后搜索。 下面是Dúthomhas描述的方法的一個實現。但是請注意,它不處理前導零、+號或空格: #include <stdio.h>int is_digit(int c) { return c >= '0' && c <= '9'; }int main() { const char file[] = "numbers.txt"; FILE *fp = fopen(file, "r"); FILE *fp2 = fopen(file, "r"); long largest = 0, current = 0; int c, c2, cmp = 0, neg = 0, neg2 = 0; for (;;) { c = getc(fp); if (c == '-') { neg = 1; c = getc(fp); } c2 = getc(fp2); if (c2 == '-') { neg2 = 1; c2 = getc(fp2); } if (is_digit(c)) { if (is_digit(c2)) { if (cmp == 0) cmp = c - c2; continue; } /* number is longer than largest */ cmp = 1;