c - 错误:格式 '%lu' 需要一个匹配的 'long unsigned int' 参数 [-Werror=format=]
问题描述
我该如何解决error
?在网上搜索了很多,但没有发现任何类似的问题。
使用 gcc -Wall -Werror -std=c99 编译 错误代码:
NameOfProgram: In function ‘main’:
NameOfProgram:17:23: error: format ‘%lu’ expects a matching ‘long unsigned int’ argument [-Werror=format=]
printf("%lu , number");
~~^
NameOfProgram:21:23: error: format ‘%lu’ expects a matching ‘long unsigned int’ argument [-Werror=format=]
printf("%lu , number");
c99中的程序:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
unsigned long number;
printf("Geben Sie irgendeine natürliche Zahl ein, die größer als 0 ist: ");
scanf(" %lu", &number);
printf("\n");
while(number > 0) {
if(number % 2 == 0) {
number = number / 2;
printf("%lu , number");
}
else {
number = (3 * number) + 1;
printf("%lu , number");
}
}
return EXIT_SUCCESS;
}
解决方案
你的报价在错误的地方。试试这个
printf("%lu", number);
但作为旁注,可能值得考虑更便携的 PRI 表示法。例如,如果您有一个明确的 32 位无符号整数,则打印格式字符串因编译器而异:
uint32_t number;
printf("My value is: %"PRIu32, number);
推荐阅读
- javascript - 如何使用图表 Js 查找每年的项目总和
- python - 字符串之间的空间
- python - Python烧瓶无法在中间件中获取标头值
- process - PC寄存器可以指向与文本段不同的内存区域吗?
- c++ - c++ std::ifstream 构造函数:为什么构造函数使用单个参数解析以及为什么它不能用 c++ 样式实例化对象
- javascript - Google Maps API 获取位置地址和域信息
- onclick - 单击时缩放到标记位置 -OpenLayers
- javascript - JavaScript 匿名函数回调和 redux-saga .next()
- android - 如何在 Android 中直接以画中画模式启动 Activity
- javascript - 如何在 onclick 函数中发送两个参数 id 和 name?