我无法从文件读取特定的整数,我不知道为什么。首先,我通读整个文件以了解它有多大,然后将指针重置为开始。然后我读取3个16字节的数据块。然后1个20字节块,然后我想在最后读取1个字节作为整数。但是,我不得不以文字形式写入文件,但我认为这不应该成为问题。我的问题是,当我从文件中读出它而不是15的整数值时,它是49.我检查了ACII表,它不是1或5的十六进制或八进制值。我很困惑,因为我的阅读声明是read(inF, pad, 1)
,我相信是正确的。我知道整数变量是4个字节,但是文件中只剩下一个字节的数据,所以我只读入最后一个字节。
我的代码复制功能(它似乎想了很多,但不认为这是)从C中的文本文件读取
代码
#include<math.h>
#include<stdio.h>
#include<string.h>
#include <fcntl.h>
int main(int argc, char** argv)
{
char x;
int y;
int bytes = 0;
int num = 0;
int count = 0;
num = open ("a_file", O_RDONLY);
bytes = read(num, y, 1);
printf("y %d\n", y);
return 0;
}
综上所述,我的问题,如何当我读到字节来存储15从文本文件,我不能从整数表示15视图呢? 任何帮助将不胜感激。 谢谢!
我不能完全了解您所用数据做什么,所以你应该降低代码的东西简单,像“从阅读数一个文件“和”向一个文件写入一个数字“ - 实验起来要容易得多。 – che 2012-03-11 23:51:25
@che我将代码更改为类似但很简单的代码,但我仍然遇到同样的问题,您有建议吗? – tpar44 2012-03-12 01:44:00
这是一条线索:49是ASCII字符'1'的十进制值。 – blueshift 2012-03-12 02:01:35