c语言 char转成int数值不对

int main(int argc,char *argv[])
{

FILE *dataFile=“f:\\a.txt”;
char charFromFile,fileName[20];
int intLen;
charFromFile=fgetc(dataFile);
printf("charFromFile =%c\n",charFromFile);
intLen =charFromFile;
printf("intLen =%d\n",intLen);

}
运行时,从文件读入2,打印结果是

2
50
请问是什么地方出错了?类型转换错了吗?前面加int转换也没用

第1个回答  2014-10-22
#include <stdio.h>

#include <stdlib.h>

void main(int argc,char *argv[])
{

//FILE *dataFile="a.txt";
char charFromFile,fileName[20];
char buf[256];
int intLen;

//charFromFile=fgetc(dataFile);
charFromFile='2';

printf("charFromFile =%c\n",charFromFile);

buf[0]=charFromFile;
buf[1]=0;

intLen = atol(buf);

printf("intLen =%d\n",intLen);

}

运行结果:

charFromFile =2
intLen =2本回答被提问者采纳
第2个回答  2014-10-22
你从文件中读入的是字符 2 不是 整数2
第3个回答  2014-10-22
没错呀
字符 2 的ASCII码 是 0x32 , 也就是 50
相似回答