【发布时间】:2010-07-14 04:21:57
【问题描述】:
我正在尝试读取文件的内容(其中包含“标准”文本和“二进制”数据)。
然后我需要获取该字符(标准或扩展 ASCII)并获取相应的十进制 (int) ASCII 值。
我有很多时间让它正常工作。
这是代码的 sn-p 以帮助显示我目前在做什么......
FILE *fp = fopen(file, "r+");
char *value = NULL;
size_t charSize = sizeof(char) + 1;
value = malloc(charSize);
strcpy(value, "0");
fseek(fp, offset, SEEK_SET);
fgets(value, charSize, fp);
int c = (int)value;
free(value);
我读到一篇文章说您需要为扩展的 ascii 使用 unsigned char,但是更改为 unsigned char 并不能解决问题(并给出编译警告)
我也尝试在代码中使用 wchar_t:
....
wchar_t *value = NULL;
value = malloc(2);
wcscpy(value, (wchar_t *)"");
fseek(fp, offset, SEEK_SET);
fgetws(value, 2, fp);
int c = (int)value;
这些似乎都不起作用。我要么基本上所有的东西都得到 0,要么得到一些“随机”值。
例如,使用我得到的三个中的任何一个: 值:%(正确) c: 76678304(数字每次都不同,但在同一个“范围”内)(有人告诉我这是不正确的):)
所以我显然做错了什么,但我似乎无法弄清楚......
非常感谢任何帮助。
【问题讨论】:
标签: c type-conversion