gpt4 book ai didi

c++ - 奇怪的数据类型问题

转载 作者:搜寻专家 更新时间:2023-10-31 02:24:42 28 4
gpt4 key购买 nike

我是 C++ 的新手,我不明白发生了什么。我正在尝试转换 Lua double arg。数据类型为 uint8_t。应用程序编译没有任何问题 - 但是,我没有从变量中得到任何结果 - 就像它是空的一样。

#include <iostream>
#include <netinet/in.h>
#include <sstream>
#include "lua.h"

using namespace std;
int _lua_function(lua_State* L) {
int step = lua_tonumber(L, 1);
ostringstream oss;
oss << "Step is:" << step;
return 0;
}

输出为:步长为:22

当我改变

int step = lua_tonumber(L, 1);

uint8_t step = static_cast<uint8_t> (lua_tonumber(L, 1));

输出变为:步骤为:

为什么我只是因为数据类型更改而没有从变量中获得任何结果?

最佳答案

我会说 uint8_t 在您的平台上与 unsigned char 相同。将值为 22unsigned char 插入到 ostringstream 时,您不会在输出中看到 22但是 22 表示的字符是不可打印的字符。

你可以试试

uint8_t s = 22;
std::cout << s << std::endl;

看到同样的效果。

关于c++ - 奇怪的数据类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27763348/

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