警告:格式 '%d' 需要类型"int",但参数 6 的类型为 'long int'
warning: format '%d' expects type 'int', but argument 6 has type 'long int'
我在编译过程中收到此警告。
"警告:格式"%d"需要类型"int",但参数6具有类型"long int"
我应该将%d
更改为%lu
吗?
编辑:这是代码的一部分。
if (item->GetVnum() == DRAGON_HEART_VNUM)
{
sprintf(buf, "Inc %ds by item{VN:%d SOC%d:%d}", ret, item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX));
}
else
{
sprintf(buf, "Inc %ds by item{VN:%d VAL%d:%d}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
}
将格式说明符从%d
更改为%ld
,或将参数的数据类型更改为int
。(%lu
将用于unsigned long int
。)
或者,您可以使用std::cin
作为输入,使用std::cout
作为输出。您不必使用printf/scanf样式的类型代码;操作数类型的正确重载将被自动调用。
我收到了同样的警告,但后来我在网上搜索,得到的最佳解决方案是——没关系,只要运行程序就可以了。因为我尝试了我能做的每一件事,但我无法摆脱"警告",所以我一直在某个极客网站上上网,有人告诉我不要动代码,只要运行它就行了。。。
相关文章:
- 为什么 int 类型的枚举类值不能用作 int
- 如何将文本文件的特定行读取到 int 类型的数组中C++?
- int* 和 int[] 类型对二进制运算符 + 的操作数无效
- 比较两个整数在C++中与未知 int 类型的相等性
- 二进制'operator+' 'int*'和'int*'类型的无效操作数
- 使用元编程选择 int 类型,将生成错误
- 从数组创建 Mat 时,'cv::Mat' 和 'int' 类型不兼容
- 复制初始化 - 从 'int' 类型转换为非标量类型
- 初始化cv :: mat ::具有int类型的定义大小的人
- 处理代码重新定义int类型(uint16_t,int16_t等),并不喜欢它
- 为什么没有"int"类型声明时输出不同?
- 在大型程序中将长变量更改为 int 类型
- 无法将 int 类型转换为时间类型(我的类类型)
- C++:无法在按位函数后将 int 类型设置为非标量
- 无法分配给INT类型的成员[10]
- C++ cin 将字符串读取到 int 类型中返回 0
- 为什么 decltype((i)) 是引用类型,而 decltype(i+0) 是 int 类型
- 使用4用于循环的4矩阵上的数组下标的“ int [int]类型”
- std::is_arithmetic 为通用 lambda 中的 int 类型返回 false:未定义的行为?
- 正在施放带有“ Int”类型的临时性