标题:C语言编程求助
只看楼主
李驹
Rank: 1
来 自:广东省
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-29
结帖率:0
已结贴  问题点数:20 回复次数:6 
C语言编程求助
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
FILE * fptr;
main()
{  int i;
   char letter;
   fptr=fopen("D:\\my information.txt","w+");
   if(fptr==0)
   {printf("An error eccurred while opening the file!\n");
   exit(1);}
   for(letter='A';letter<='Z';letter++)
   {fputc(letter,fptr);}
   puts("Just wrote the letters A through Z");
   fseek(fptr,-1,SEEK_END);
   printf("Here is the file backward:\n");
   for(i=26;i>=1;i--)
   {letter=fgetc(fptr);
   fseek(fptr,-2,SEEK_CUR);
   printf("The next letter is%c\n",letter);}
   fclose(fptr);
   return 0;
}
这个程序的结果是书写26个大写字母到文件中,然后逆序输出。为什么倒数第五行fseek里面的数字是-2而不是-1?希望有人指导。
搜索更多相关主题的帖子: through letters include backward 编程 
2012-09-29 22:47
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:4 
letter=fgetc(fptr);
fseek(fptr,-2,SEEK_CUR);
原因在于上一句fgetc会将文件位置移动到后面,因此需要-2来回退

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-09-30 06:36
李驹
Rank: 1
来 自:广东省
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-29
得分:0 
回复 2楼 pauljames
您的意思是fgetc()会使位置向后移动一位吗?

菜鸟
2012-09-30 11:05
nba88lin
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2012-9-30
得分:4 
fgetc()后,指针会后移一格。
2012-09-30 21:23
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3450
专家分:19340
注 册:2012-3-31
得分:4 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-10-01 00:15
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:4 
以下是引用青春无限在2012-10-1 00:15:07的发言:

看看

凌晨啦 看看什么。 还不睡觉?

梅尚程荀
马谭杨奚







                                                       
2012-10-01 00:18
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
得分:4 
看看,也学学
2012-10-01 00:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382346-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.366688 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved