首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-04-14 
int和long之间的转换long lCount pMessages-Count - 1int count2[2]{0}if((fpfopen(c:\\count.txt

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);
为什么执行到红色部分执行不下去了?

热点排行