问题十八:文件类型的指针。
从文件指针的移动角度说明下面的两句有何不同:
一):printf("\ninput two int:");
scanf("%d%d",&a,&b);
二):printf("input a:");
scanf("%d",&a);
printf("input b:");
scanf("%d",&b);
我只是想知道这两个指向stdin文件的指针在有printf语句存在的情况下位置会不会有什么变化。
为了引导诸位正确地理解我的问题,我说一下我的思路。例一FILE指针在stdin头部,例二中由于有printf("这一句的存在,文件指针再一次指向stdin的头部。开始接受数据。而在例一中,输入b值时FILE型指针并未指向stdin文件的头部,而是在离头部第三个字节处。
问题点数:20、回复次数:3Top
1 楼stone112979(梦醒十分)回复于 2002-10-18 12:54:52 得分 10
我觉得这二句本质上是没有区别的。
但是从调试程序的过程来看,printf当然是有区别的。Top
2 楼desdouble(double)回复于 2002-10-19 08:49:21 得分 0
没有区别?Top
3 楼www1313()回复于 2002-10-19 19:14:15 得分 10
文件指针的位置事实上一直都不会变化, 因为stdin, stdout, stderr一般情况下都是管道。
一般的文件可以通过long ftell(FILE *fp)察看文件指针的偏移量。Top




