高分!!请高手帮忙解释一下.fread函数出错了!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分!!请高手帮忙解释一下.fread函数出错了!相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
void main()
printf("%c\n",'i');
return;
这个文件编译成try.exe,进行以下操作.
#include<stdio.h>
int main()
FILE *fp=NULL;
char a[1000];
if((fp=fopen("try.exe","r"))==NULL) printf("error!!");return 1;
fread(a,sizeof(char),1000,fp);
/*
这里写上你测试的语句.
*/
return 0;
我想问的是:
a[0x74],a[0x75],a[0x76],a[0x77]这几个数看一下
是不是和try.exe中相应位置一样.
我的编译环境是VC6.0
测试结果,a[0x75]位置读漏了一个字节,
即在try.exe的0x75位置有连续的两个0x0D,但读到a数组里只剩一个0x0D了.
我把try.exe的0x76位置的0x0D改为其它的值,数组a在这个位置又对了.
我想请高手指一条明路小弟走,怎样才可以完整地把文件读取出来,而不会像这样少读了一个字节.
高金山朋友,谢谢你的回答,这样虽解决了读取的问题,但在这个例子中成立难以保证不会在其它例中子出错,像用"r"参数一样.
我只要把文件改一下,"r"参数也能正确读出.也就是说,这个文件刚好让"r"参数出错了.
我关心的是错误本身.
我想知道这种错误原因.应该是系统的错,我是想找出这种错是错在哪个环节.并找到解决这个错误的办法.
在此附上fread的实现细节,望指出在哪里读漏了一个字节.
http://hi.baidu.com/aauutthh/blog/item/828bfed89430173033fa1cf1.html
fopen的第二个参数r修改为rb
#include<stdio.h>
int main()
char a[1000]=0;
FILE *fp=NULL;
if((fp=fopen("try.exe","rb"))==NULL) ////////////fopen的第二个参数r修改为rb
printf("error!!");
return 1;
fread(a,sizeof(char),1000,fp);
/*
这里写上你测试的语句.
*/
fclose(fp);
return 0;
补充:
你知道r是按文件文件读取的吧?rb是按二进制文件读取的吧?
exe文件,是二进制文件,又不是文本文件!!!
不论是文本文件,还是二进制文件,都按二进制文件读取,肯定是不会错的。
不管是哪个例子!
原因就在于“把二进制文件按文本文件读取”了啊!
这种做法的结果是错误的,才是正常的,不错到奇怪了!
就像你用scanf("%f",&d);其中d是double类型,也会错
为什么错呢?我认为不需要去找原因了! 参考技术A //vc6.0调试通过
#include<stdio.h>
int main()
FILE *fp=NULL;
char a[1000];
int i=0;
if((fp=fopen("try.exe","r+"))==NULL) printf("error!!");return 1;
/*测试*/
while(!feof(fp))
fread(&a[i],sizeof(char),1,fp);
printf("%c",a[i]);
/*测试结果
#include<stdio.h>
void main()
printf("%c\n",'i');
return;
*/
return 0;
参考技术B 难
请高手帮忙分析下SPSS的多元线性回归结果吧~急啊~~~
下面是线性回归出来的四个图。。。看不懂啊。。。请高手帮个忙,是写在论文里的,所以请稍微详细点说说吧~主要是三个变量和Y的拟合度怎么样,如何看的~~谢谢了~~~
Variables Entered/Removed(b)
Model Variables Entered Variables Removed Method
1 X3, X2, X1(a) . Enter
a All requested variables entered.
b Dependent Variable: Y
Model Summary
Model R R Square Adjusted R Square Std. Error of the Estimate
1 .823(a) .678 .664 4.60955
a Predictors: (Constant), X3, X2, X1
ANOVA(b)
Model Sum of Squares df Mean Square F Sig.
1 Regression 3170.063 3 1056.688 49.731 .000(a)
Residual 1508.604 71 21.248
Total 4678.667 74
a Predictors: (Constant), X3, X2, X1
b Dependent Variable: Y
Coefficients(a)
Model Unstandardized Coefficients Standardized Coefficients t Sig.
B Std. Error Beta
1 (Constant) -4.517 1.517 -2.978 .004
X1 -2.79E-005 .000 -.144 -.174 .863
X2 .076 .008 .693 9.355 .000
X3 7.40E-005 .000 .398 .483 .631
a Dependent Variable: Y
图片
拟合优度R方等于0.678,表示自变量可以解释因变量的67.8%变化,说明拟合优度还可以。
方差检验表中F值对应的概率P值为0.000,小于显著度0.05,因此应拒绝原假设,说明自变量和因变量之间存在显著的线性关系。
参数检验表中只有自变量X2和常数项的概率P值为0.000,小于显著度0.05,而自变量X1和X3的概率P值大于显著度0.05,说明只有自变量X2对因变量在总体中存在显著的线性关系,X1、X3和因变量在总体中不存在显著的线性关系。
得到的线性方程为:y=-4.517-0.000028X1+0.76X2+0.000074X3(记住这里用的是直接进入法进行拟合方程的,所以即使X1和X3没通过检验,也要放到方程中去)本回答被提问者采纳
以上是关于高分!!请高手帮忙解释一下.fread函数出错了!的主要内容,如果未能解决你的问题,请参考以下文章
DataList控件的onselectindexchanged事件不起作用啦,咋回事,请高手帮忙啊(高分)