我有一个包含数千行的 txt 文件。每行的长度不同。 txt文件主要包含以字节为单位的十六进制数据。例如:
01 01 04 03 = 4 个字节。
第二行可能包含 8 个字节,第三行可能包含 40 个字节,依此类推。有成千上万条这样的线。
现在我想将这些字节读入 int 缓冲区。我正在读入 char 缓冲区,它在内存中保存为 0001 0001 0004 0003,这是我不想要的,它被认为是 8 个字节。在内存中,它保存为 3031 3031 3034 3030 (ASCII),因为它是字符缓冲区。我正在将其转换为 0001 0001 0004 0003。
下面是我的代码
FILE *file;
char buffer[100] = { '\0' };
char line[100] = { '0' };
if(file!=NULL)
{
while(fgets(line, sizeof(line), file)!=NULL)
{
for(i = 0; (line[i] != '\r') ; i++)
{
buffer[i] = line[i];
}
}
}
我想逐行读取而不是一次读取整个文件。在内存中,我只想看到 01 01 04 03。我想使用 int buffer 会有所帮助。一旦将文件读入缓冲区行,它就会存储为 char。有什么建议吗?
最佳答案
我会读一行,然后使用 strtol
转换输入中的各个数字。 strtol
为您提供指向转换失败字符的指针,您可以将其用作查找/转换下一个数字的起点。
关于c - 从文件读取到 C 中的 int 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690082/