|
50鱼币
运行结果是 11,22,33,44,55,66,77.。。
不知道怎么来的。。按照我想应该是44,55,66,44,55,66,77
- #include<stdio.h>
- main()
- {
- FILE *fp;
- int i, a[]={11,22,33,44,55,66,77};
- fp=fopen("1.dat","wb");
- for(i=0;i<7;i++)
- fwrite(a+i, sizeof(int ),1,fp);
- fclose(fp);
- fp=fopen("1.dat","rb");
- fseek(fp,-4*sizeof(int ),2);
- fread(a,3*sizeof(int ),1,fp);
- fclose(fp);
- for(i=0;i<7;i++)
- printf("%4d",a[i]);
- }
复制代码
为什么没有人回复?
你把代码写成这样,在我之前看到了你之前发的那个帖子,我就没兴趣回复
这一次,我为鱼币而来
不过,我好像不缺鱼币,^_^
把代码写成这样多好?
- #include<stdio.h>
- int main(void)
- {
- FILE *fp;
- int i, a[] = {11, 22, 33, 44, 55, 66, 77};
-
- fp = fopen("1.dat", "wb");
- for(i = 0; i < 7; i++)
- fwrite(a + i, sizeof(int), 1, fp);
- fclose(fp);
-
- fp = fopen("1.dat", "rb");
- //fseek(fp, -4 * sizeof(int), 2);
- fseek(fp, -4 * sizeof(int), SEEK_END); // 不要写立即数,你直接写2,我不知道2是什么,我还得查文档,写SEEK_END多好?一看就知道是从结尾偏移
- fread(a, 3 * sizeof(int), 1, fp);
- fclose(fp);
- for(i = 0; i < 7; i++)
- printf("%4d", a[i]);
- printf("\n");
- return 0;
- }
复制代码
你是对的,在我的系统上结果是
- 44 55 66 44 55 66 77
- 请按任意键继续. . .
复制代码
这是直接粘贴你代码的结果
- 44 55 66 44 55 66 77请按任意键继续. . .
复制代码
代码
- #include<stdio.h>
- int main(void)
- {
- FILE *fp;
- int i, a[] = {11, 22, 33, 44, 55, 66, 77};
-
- fp = fopen("1.dat", "wb");
- for(i = 0; i < 7; i++)
- fwrite(a + i, sizeof(int), 1, fp);
- fclose(fp);
-
- fp = fopen("1.dat", "rb");
- //fseek(fp, -4 * sizeof(int), 2);
- fseek(fp, -4 * sizeof(int), SEEK_END); // 不要写立即数,你直接写2,我不知道2是什么,我还得查文档,写SEEK_END多好?一看就知道是从结尾偏移
- fread(a, 3 * sizeof(int), 1, fp);
- fclose(fp);
- for(i = 0; i < 7; i++)
- printf("%4d", a[i]);
- printf("\n");
- return 0;
- }
复制代码
有两条有意义的警告
- 1>c:\visualstudioprojects\tmp\tmp\main.c(15): warning C4308: 负整型常量转换为无符号类型
- 1>c:\visualstudioprojects\tmp\tmp\main.c(15): warning C4307: “*”: 整型常量溢出
复制代码
如果有兴趣,可以把你系统上的反汇编代码贴上来,我分析分析
|
最佳答案
查看完整内容
为什么没有人回复?
你把代码写成这样,在我之前看到了你之前发的那个帖子,我就没兴趣回复
这一次,我为鱼币而来
不过,我好像不缺鱼币,^_^
把代码写成这样多好?
你是对的,在我的系统上结果是
这是直接粘贴你代码的结果
代码
有两条有意义的警告
如果有兴趣,可以把你系统上的反汇编代码贴上来,我分析分析
|