&&版
for(i=0; i<lim-1 && (c=getchar()) != '\n' && c != EOF; ++i) s[i] = c;
转换为if版
for(i=0; i<lim-1; ++i){ if((c=getchar()) != '\n') if(c != EOF) s[i] = c; }
转换为while版
enum loop{ NO, YES}; enum loop okloop = YES; i = 0; while(okloop == YES) if(i >= lim-1) /* 是否还有空间 */ okloop = NO; else if((c = getchar()) == '\n') okloop = NO; else if(c == EOF) /* 文件是否结束 */ okloop = NO; else{ s[i] = c; ++i; }