当前位置:  技术问答>linux和unix

求助 linux下feof的问题

    来源: 互联网  发布时间:2016-03-25

    本文导语:  这是我一个加密程序的代码。程序的功能是把in.txt中的内容进行加密然后输出到out.txt中。调用一个我写的函数加密 以下是我的代码(加密函数部分略)。 char encrypt(char ch,int n); int main(){ int n; FILE*fin, *fout; scanf("...

这是我一个加密程序的代码。程序的功能是把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下到底还有哪些差别呢?
初学编程,见笑于大方之家了。谢谢

|
feof判断的一般会多读一遍。
使用feof时你要判断fgetc是否成功。

|
原因在于feof返回零并不能保证fgetc返回成功。
感觉上好像WINDOWS下,提前设置了eof标志,
就是说,如果你上次fgetc读到的是最后一个字节,EOF标志就被设置了。

而且用feof判断是有问题的,fgetc返回EOF,可能的原因是读错误或者EOF,要用feof和ferror来进行区分。

[code=BatchFile]
1 #include 
int fgetc(FILE *stream);
Description
2 If a next character is present from the input stream pointed to by stream, the fgetc
function obtains that character as an unsigned char converted to an int and
advances the associated file position indicator for the stream (if defined).
Returns
3 The fgetc function returns the next character from the input stream pointed to by
stream. If the stream is at end-of-file, the end-of-file indicator for the stream is set and
fgetc returns EOF. If a read error occurs, the error indicator for the stream is set and
fgetc returns EOF.230)
[/code]

    
 
 

您可能感兴趣的文章:

  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • module的问题.版本问题 求助
  • 求助关于linux和windows引导lilo的问题
  • 求助~~求助 ~~linux文件读写问题
  • 求助! 又出现问题了!
  • 一个简单的问题,高分求助!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • socket实现多文件并发传输,求助多线程实现问题?
  • 各位大侠,求助一个关于ubuntu系统的问题
  • 100分求助,Ubuntu安装问题
  • linux的 iptables问题求助
  • 100分求助:关于linux下配置sendmail的问题
  • 急求助!安装linux后重装windows的问题
  • QT中关于方向键控制焦点的问题(求助)
  • 求助关于__cdecl的使用问题
  • 求助: 在ubuntu11.04上的有线连接问题
  • 急!!!小弟刚刚接触linux 在线求助<很简单的问题>
  • 求助: RedHat as4 内网正常,无法访问外网的问题!
  • 求助:linux下 vim的配置(高分求助)
  • 求助!为什么linux下FTP允许windows登录而不允许linux登录?在线等
  • 求助!!怎么在linux交叉环境下移植SOAP协议?
  • 新装linux求助
  • 求助:新氧Linux中文定制版V0.1主题包
  • Opengl Linux多线程 求助
  • linux webserver求助一下
  • 求助,linux下如何使用函数更改时区,例如设置美国时区 谢谢
  • mini2440开发,linux求助
  • 求助:linux系统断电后无法正常启动
  • 求助访问linux下jboss应用程序?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!
  • 高分求助foxpro的jdbc驱动程序!!!!
  • ~(取反)操作错误,求助!谢谢
  • 求助:在Java中如何获得当前系统的CPU型号?
  • RPM紧急求助
  • 求助:如何在UNIX下访问已经在WINDOWS下安装好的ORACLE?
  • 求助!
  • 高分求助实例!!!!定期删除文件!!!!!
  • 高分求助!!!!定期删除文件!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3