gpt4 book ai didi

在C中将读取的数字转换为无符号短整型

转载 作者:行者123 更新时间:2023-11-30 18:46:30 25 4
gpt4 key购买 nike

我正在尝试将读取的数字转换为无符号短

我的程序将特定数字保存在文件中。之后我尝试读取它并将其转换为另一种类型。实际上读取的值是正确的,但是当我转换它时,它是一个不同的值。

这是我读取文件的方式:

fseek(fp, 0, SEEK_END);

int length = ftell(fp);
fseek(fp, 0, SEEK_SET);

char* buffer = malloc(length);
if (buffer) {
fread(buffer, 1, length, fp);
}

fclose(fp);

假设该值为“1337”;缓冲区将具有正确的值“1337”;

现在这是我尝试将值转换为无符号短的方法:

unsigned short num = (unsigned short)buffer;

var num 现在不再是与 buffer 相同的值。

我做错了什么?

最佳答案

这与读取文件无关。您不能只是将字符串(实际上是指向 char 的指针)转换为数字并期望它执行任何明智的操作。

您应该做的是使用转换函数,例如 strtoul (在 <stdlib.h> 中声明)或 sscanf (在 <stdio.h> 中声明)。但请确保给它一个字符串,即确保 buffer以 null 结尾。

关于在C中将读取的数字转换为无符号短整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com