[英]Why does C code return numbers greater than 10 as letters?
#include <stdio.h>
int main(void)
{
int mins = 10;
int formu = 6 * mins;
printf("Input: %x\n", mins);
printf("Result: %x\n", formu);
}
結果如下:
Input: a
Result: 3c
我相信出於某種原因,其中一種類型(如果不是兩種)被生成為“Double”並且放入“Int”會導致沖突。當我將“%x”中的任何一個更改為“mins”或“formu”我收到以下錯誤:
error: data argument not used by format string [-Werror,-Wformat-extra-args]
printf("Input: %mins\n", mins);
~~~~~~~~~~~~~~~~ ^
謝謝
您要求printf()
將數字表示為hexadecimal 。
嘗試使用%d
或%i
而不是%x
。 這會將它們顯示為十進制數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.