求助 linux下feof的问题
这是我一个加密程序的代码。程序的功能是把in.txt中的内容进行加密然后输出到out.txt中。调用一个我写的函数加密
以下是我的代码(加密函数部分略)。
char encrypt(char ch,int n);
int main(){
int n;
FILE*fin, *fout;
scanf("%d", &n);
if((fin = fopen("in.txt", "r")) == NULL)
exit(0);
if((fout = fopen("out.txt", "w")) == NULL)
exit(1);
while(!feof(fin)){
fputc(encrypt(fgetc(fin),n),fout);
}
fclose(fin);
fclose(fout);
return 0;
}
我在vc++6.0和dev— c++中跑都没有问题,但提交到我们学校的评测系统上就一个测试点也过不了,他用的是linux系统。
后来我将while(!feof(fin))这句改为while((c = fgetc(fin)) != EOF)再提交就通过了所有测试点,后来查了一下说是feof是当作宏来用的,但linux中feof却实现为函数。
那么请问linux下feof应该如何使用,我那么写为什么就出问题呢?
ps:由于测试平台不同我写好感觉没问题的程序有时提交上去会一个测试点也不能通过甚至编译不能通过死循环等等。那么请问linux下c编程和windows下到底还有哪些差别呢?
初学编程,见笑于大方之家了。谢谢