读书人

int和long之间的转换,该如何处理

发布时间: 2012-04-14 17:14:21 作者: rapoo

int和long之间的转换
long lCount = pMessages->Count - 1;
int count2[2]={0};
if((fp=fopen("c:\\count.txt","rb"))==NULL)
{
printf("cannot open the file.\n");
exit(1);
}
fread(&count2,sizeof(count2),1,fp);
fclose(fp);
if(&count2==lCount)
{

}
我在count.txt中添加3,&count2能正确得到数据,但是我执行红色部分有错误,我知道是long型和int型之间的转换问题,我不知道怎么改才能得到3,long(*count2)都试过了,没用,请各位大哥帮帮忙,在线等!O(∩_∩)O谢谢

[解决办法]
if(&count2==lCount)
这样比是错的 &count2中得到 数组首地址,这样是个地址在和 lCount比较;

改成 if(count2[0]==lCount)试试
[解决办法]

探讨
引用:
fread(&count2,sizeof(int),1,fp);
你这样改改试试

哥,count2[0]还是51,怎么办

[解决办法]
C/C++ code
#include <stdio.h>#include <stdlib.h>int main(void){    int num;    char str[16] = {0};    FILE *fp = fopen("1.txt", "r");    if (fp)    {        fread(str, sizeof(str[0]), 1, fp);        num = atoi(str);        printf("%d\n", num);        fclose(fp);    }    return 0;}
[解决办法]
探讨
谢谢各位,已经解决!还有一个问题
if((fp=fopen("c:\count.txt","wb"))==NULL)
{
printf("cannot open the file.\n");
exit(1);
}
fwrite(lCount,sizeof(lCount),1,fp);
fclose(fp);
为什么执行到红色部分执行不下去了?

读书人网 >C语言

热点推荐