我该如何解决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;
}
答案 0 :(得分:2)
您的引号位置错误。试试这个
printf("%lu", number);
但是,作为一个附带说明,可能值得考虑使用更便携的PRI表示法。例如,如果您有一个显式的32位无符号整数,则打印格式字符串因编译器而异:
uint32_t number;
printf("My value is: %"PRIu32, number);