while (!feof(fpsr)){ 读,计数或输出} -- 这是中国c语言教科书普遍的错误。检查 文件是否 读到 EOF ,应当在 读语句执行以后,因为读语句 执行后才会返回 文件状态,设文件标志(是否到达 EOF, 是否有读的错误)。所以 判断 是否 EOF 要在读 以后,计数和输出以前。 正确的次序是:while (1){ 读;if (feof(fpsr) ) break; // 及时 结束计数或输出}