这个头文件提供 整数格式转换 的相关功能,例如整数和字符串之间的转换。
| 类型 | 标准 | 说明 |
|---|---|---|
imaxdiv_t |
C99 | 保存除法的结果 |
| 函数 | 标准 | 说明 |
|---|---|---|
| imaxabs | C99 | 计算整数的绝对值 |
| imaxdiv | C99 | 计算整数除法,返回商和余数 |
| strtoimax | C99 | 字符串转 intmax_t |
| strtoumax | C99 | 字符串转 uintmax_t |
| wcstoimax | C99 | 宽字符串转 intmax_t |
| wcstoumax | C99 | 宽字符串转 uintmax_t |
printf 格式 |
标准 | 说明 |
|---|---|---|
PRId8 |
C99 | printf 中用于打印 int8_t 的 d 格式(有符号十进制) |
PRId16 |
C99 | printf 中用于打印 int16_t 的 d 格式 |
PRId32 |
C99 | printf 中用于打印 int32_t 的 d 格式 |
PRId64 |
C99 | printf 中用于打印 int64_t 的 d 格式 |
PRIdPTR |
C99 | printf 中用于打印 intptr_t 的 d 格式 |
PRIdMAX |
C99 | printf 中用于打印 intmax_t 的 d 格式 |
PRIdFAST8 |
C99 | printf 中用于打印 int_fast8_t 的 d 格式 |
PRIdFAST16 |
C99 | printf 中用于打印 int_fast16_t 的 d 格式 |
PRIdFAST32 |
C99 | printf 中用于打印 int_fast32_t 的 d 格式 |
PRIdFAST64 |
C99 | printf 中用于打印 int_fast64_t 的 d 格式 |
PRIdLEAST8 |
C99 | printf 中用于打印 int_least8_t 的 d 格式 |
PRIdLEAST16 |
C99 | printf 中用于打印 int_least16_t 的 d 格式 |
PRIdLEAST32 |
C99 | printf 中用于打印 int_least32_t 的 d 格式 |
PRIdLEAST64 |
C99 | printf 中用于打印 int_least64_t 的 d 格式 |
PRIi8 |
C99 | printf 中用于打印 int8_t 的 i 格式(有符号十进制) |
PRIi16 |
C99 | printf 中用于打印 int16_t 的 i 格式 |
PRIi32 |
C99 | printf 中用于打印 int32_t 的 i 格式 |
PRIi64 |
C99 | printf 中用于打印 int64_t 的 i 格式 |
PRIiPTR |
C99 | printf 中用于打印 intptr_t 的 i 格式 |
PRIiMAX |
C99 | printf 中用于打印 intmax_t 的 i 格式 |
PRIiFAST8 |
C99 | printf 中用于打印 int_fast8_t 的 i 格式 |
PRIiFAST16 |
C99 | printf 中用于打印 int_fast16_t 的 i 格式 |
PRIiFAST32 |
C99 | printf 中用于打印 int_fast32_t 的 i 格式 |
PRIiFAST64 |
C99 | printf 中用于打印 int_fast64_t 的 i 格式 |
PRIiLEAST8 |
C99 | printf 中用于打印 int_least8_t 的 i 格式 |
PRIiLEAST16 |
C99 | printf 中用于打印 int_least16_t 的 i 格式 |
PRIiLEAST32 |
C99 | printf 中用于打印 int_least32_t 的 i 格式 |
PRIiLEAST64 |
C99 | printf 中用于打印 int_least64_t 的 i 格式 |
PRIu8 |
C99 | printf 中用于打印 uint8_t 的 u 格式(无符号十进制) |
PRIu16 |
C99 | printf 中用于打印 uint16_t 的 u 格式 |
PRIu32 |
C99 | printf 中用于打印 uint32_t 的 u 格式 |
PRIu64 |
C99 | printf 中用于打印 uint64_t 的 u 格式 |
PRIuPTR |
C99 | printf 中用于打印 uintptr_t 的 u 格式 |
PRIuMAX |
C99 | printf 中用于打印 uintmax_t 的 u 格式 |
PRIuFAST8 |
C99 | printf 中用于打印 uint_fast8_t 的 u 格式 |
PRIuFAST16 |
C99 | printf 中用于打印 uint_fast16_t 的 u 格式 |
PRIuFAST32 |
C99 | printf 中用于打印 uint_fast32_t 的 u 格式 |
PRIuFAST64 |
C99 | printf 中用于打印 uint_fast64_t 的 u 格式 |
PRIuLEAST8 |
C99 | printf 中用于打印 uint_least8_t 的 u 格式 |
PRIuLEAST16 |
C99 | printf 中用于打印 uint_least16_t 的 u 格式 |
PRIuLEAST32 |
C99 | printf 中用于打印 uint_least32_t 的 u 格式 |
PRIuLEAST64 |
C99 | printf 中用于打印 uint_least64_t 的 u 格式 |
PRIo8 |
C99 | printf 中用于打印 uint8_t 的 o 格式(有符号八进制) |
PRIo16 |
C99 | printf 中用于打印 uint16_t 的 o 格式 |
PRIo32 |
C99 | printf 中用于打印 uint32_t 的 o 格式 |
PRIo64 |
C99 | printf 中用于打印 uint64_t 的 o 格式 |
PRIoPTR |
C99 | printf 中用于打印 uintptr_t 的 o 格式 |
PRIoMAX |
C99 | printf 中用于打印 uintmax_t 的 o 格式 |
PRIoFAST8 |
C99 | printf 中用于打印 uint_fast8_t 的 o 格式 |
PRIoFAST16 |
C99 | printf 中用于打印 uint_fast16_t 的 o 格式 |
PRIoFAST32 |
C99 | printf 中用于打印 uint_fast32_t 的 o 格式 |
PRIoFAST64 |
C99 | printf 中用于打印 uint_fast64_t 的 o 格式 |
PRIoLEAST8 |
C99 | printf 中用于打印 uint_least8_t 的 o 格式 |
PRIoLEAST16 |
C99 | printf 中用于打印 uint_least16_t 的 o 格式 |
PRIoLEAST32 |
C99 | printf 中用于打印 uint_least32_t 的 o 格式 |
PRIoLEAST64 |
C99 | printf 中用于打印 uint_least64_t 的 o 格式 |
PRIx8 |
C99 | printf 中用于打印 uint8_t 的 x 格式(有符号十六进制,小写) |
PRIx16 |
C99 | printf 中用于打印 uint16_t 的 x 格式 |
PRIx32 |
C99 | printf 中用于打印 uint32_t 的 x 格式 |
PRIx64 |
C99 | printf 中用于打印 uint64_t 的 x 格式 |
PRIxPTR |
C99 | printf 中用于打印 uintptr_t 的 x 格式 |
PRIxMAX |
C99 | printf 中用于打印 uintmax_t 的 x 格式 |
PRIxFAST8 |
C99 | printf 中用于打印 uint_fast8_t 的 x 格式 |
PRIxFAST16 |
C99 | printf 中用于打印 uint_fast16_t 的 x 格式 |
PRIxFAST32 |
C99 | printf 中用于打印 uint_fast32_t 的 x 格式 |
PRIxFAST64 |
C99 | printf 中用于打印 uint_fast64_t 的 x 格式 |
PRIxLEAST8 |
C99 | printf 中用于打印 uint_least8_t 的 x 格式 |
PRIxLEAST16 |
C99 | printf 中用于打印 uint_least16_t 的 x 格式 |
PRIxLEAST32 |
C99 | printf 中用于打印 uint_least32_t 的 x 格式 |
PRIxLEAST64 |
C99 | printf 中用于打印 uint_least64_t 的 x 格式 |
PRIX8 |
C99 | printf 中用于打印 uint8_t 的 X 格式(有符号十六进制,大写) |
PRIX16 |
C99 | printf 中用于打印 uint16_t 的 X 格式 |
PRIX32 |
C99 | printf 中用于打印 uint32_t 的 X 格式 |
PRIX64 |
C99 | printf 中用于打印 uint64_t 的 X 格式 |
PRIXPTR |
C99 | printf 中用于打印 uintptr_t 的 X 格式 |
PRIXMAX |
C99 | printf 中用于打印 uintmaX_t 的 X 格式 |
PRIXFAST8 |
C99 | printf 中用于打印 uint_fast8_t 的 X 格式 |
PRIXFAST16 |
C99 | printf 中用于打印 uint_fast16_t 的 X 格式 |
PRIXFAST32 |
C99 | printf 中用于打印 uint_fast32_t 的 X 格式 |
PRIXFAST64 |
C99 | printf 中用于打印 uint_fast64_t 的 X 格式 |
PRIXLEAST8 |
C99 | printf 中用于打印 uint_least8_t 的 X 格式 |
PRIXLEAST16 |
C99 | printf 中用于打印 uint_least16_t 的 X 格式 |
PRIXLEAST32 |
C99 | printf 中用于打印 uint_least32_t 的 X 格式 |
PRIXLEAST64 |
C99 | printf 中用于打印 uint_least64_t 的 X 格式 |
scanf 格式 |
标准 | 说明 |
|---|---|---|
SCNd8 |
C99 | scanf 中用于输入 int8_t 的 d 格式(有符号十进制) |
SCNd16 |
C99 | scanf 中用于输入 int16_t 的 d 格式 |
SCNd32 |
C99 | scanf 中用于输入 int32_t 的 d 格式 |
SCNd64 |
C99 | scanf 中用于输入 int64_t 的 d 格式 |
SCNdPTR |
C99 | scanf 中用于输入 intptr_t 的 d 格式 |
SCNdMAX |
C99 | scanf 中用于输入 intmax_t 的 d 格式 |
SCNdFAST8 |
C99 | scanf 中用于输入 int_fast8_t 的 d 格式 |
SCNdFAST16 |
C99 | scanf 中用于输入 int_fast16_t 的 d 格式 |
SCNdFAST32 |
C99 | scanf 中用于输入 int_fast32_t 的 d 格式 |
SCNdFAST64 |
C99 | scanf 中用于输入 int_fast64_t 的 d 格式 |
SCNdLEAST8 |
C99 | scanf 中用于输入 int_least8_t 的 d 格式 |
SCNdLEAST16 |
C99 | scanf 中用于输入 int_least16_t 的 d 格式 |
SCNdLEAST32 |
C99 | scanf 中用于输入 int_least32_t 的 d 格式 |
SCNdLEAST64 |
C99 | scanf 中用于输入 int_least64_t 的 d 格式 |
SCNi8 |
C99 | scanf 中用于输入 int8_t 的 i 格式(有符号十进制) |
SCNi16 |
C99 | scanf 中用于输入 int16_t 的 i 格式 |
SCNi32 |
C99 | scanf 中用于输入 int32_t 的 i 格式 |
SCNi64 |
C99 | scanf 中用于输入 int64_t 的 i 格式 |
SCNiPTR |
C99 | scanf 中用于输入 intptr_t 的 i 格式 |
SCNiMAX |
C99 | scanf 中用于输入 intmax_t 的 i 格式 |
SCNiFAST8 |
C99 | scanf 中用于输入 int_fast8_t 的 i 格式 |
SCNiFAST16 |
C99 | scanf 中用于输入 int_fast16_t 的 i 格式 |
SCNiFAST32 |
C99 | scanf 中用于输入 int_fast32_t 的 i 格式 |
SCNiFAST64 |
C99 | scanf 中用于输入 int_fast64_t 的 i 格式 |
SCNiLEAST8 |
C99 | scanf 中用于输入 int_least8_t 的 i 格式 |
SCNiLEAST16 |
C99 | scanf 中用于输入 int_least16_t 的 i 格式 |
SCNiLEAST32 |
C99 | scanf 中用于输入 int_least32_t 的 i 格式 |
SCNiLEAST64 |
C99 | scanf 中用于输入 int_least64_t 的 i 格式 |
SCNu8 |
C99 | scanf 中用于输入 uint8_t 的 u 格式(无符号十进制) |
SCNu16 |
C99 | scanf 中用于输入 uint16_t 的 u 格式 |
SCNu32 |
C99 | scanf 中用于输入 uint32_t 的 u 格式 |
SCNu64 |
C99 | scanf 中用于输入 uint64_t 的 u 格式 |
SCNuPTR |
C99 | scanf 中用于输入 uintptr_t 的 u 格式 |
SCNuMAX |
C99 | scanf 中用于输入 uintmax_t 的 u 格式 |
SCNuFAST8 |
C99 | scanf 中用于输入 uint_fast8_t 的 u 格式 |
SCNuFAST16 |
C99 | scanf 中用于输入 uint_fast16_t 的 u 格式 |
SCNuFAST32 |
C99 | scanf 中用于输入 uint_fast32_t 的 u 格式 |
SCNuFAST64 |
C99 | scanf 中用于输入 uint_fast64_t 的 u 格式 |
SCNuLEAST8 |
C99 | scanf 中用于输入 uint_least8_t 的 u 格式 |
SCNuLEAST16 |
C99 | scanf 中用于输入 uint_least16_t 的 u 格式 |
SCNuLEAST32 |
C99 | scanf 中用于输入 uint_least32_t 的 u 格式 |
SCNuLEAST64 |
C99 | scanf 中用于输入 uint_least64_t 的 u 格式 |
SCNo8 |
C99 | scanf 中用于输入 uint8_t 的 o 格式(有符号八进制) |
SCNo16 |
C99 | scanf 中用于输入 uint16_t 的 o 格式 |
SCNo32 |
C99 | scanf 中用于输入 uint32_t 的 o 格式 |
SCNo64 |
C99 | scanf 中用于输入 uint64_t 的 o 格式 |
SCNoPTR |
C99 | scanf 中用于输入 uintptr_t 的 o 格式 |
SCNoMAX |
C99 | scanf 中用于输入 uintmax_t 的 o 格式 |
SCNoFAST8 |
C99 | scanf 中用于输入 uint_fast8_t 的 o 格式 |
SCNoFAST16 |
C99 | scanf 中用于输入 uint_fast16_t 的 o 格式 |
SCNoFAST32 |
C99 | scanf 中用于输入 uint_fast32_t 的 o 格式 |
SCNoFAST64 |
C99 | scanf 中用于输入 uint_fast64_t 的 o 格式 |
SCNoLEAST8 |
C99 | scanf 中用于输入 uint_least8_t 的 o 格式 |
SCNoLEAST16 |
C99 | scanf 中用于输入 uint_least16_t 的 o 格式 |
SCNoLEAST32 |
C99 | scanf 中用于输入 uint_least32_t 的 o 格式 |
SCNoLEAST64 |
C99 | scanf 中用于输入 uint_least64_t 的 o 格式 |
SCNx8 |
C99 | scanf 中用于输入 uint8_t 的 x 格式(有符号十六进制,小写) |
SCNx16 |
C99 | scanf 中用于输入 uint16_t 的 x 格式 |
SCNx32 |
C99 | scanf 中用于输入 uint32_t 的 x 格式 |
SCNx64 |
C99 | scanf 中用于输入 uint64_t 的 x 格式 |
SCNxPTR |
C99 | scanf 中用于输入 uintptr_t 的 x 格式 |
SCNxMAX |
C99 | scanf 中用于输入 uintmax_t 的 x 格式 |
SCNxFAST8 |
C99 | scanf 中用于输入 uint_fast8_t 的 x 格式 |
SCNxFAST16 |
C99 | scanf 中用于输入 uint_fast16_t 的 x 格式 |
SCNxFAST32 |
C99 | scanf 中用于输入 uint_fast32_t 的 x 格式 |
SCNxFAST64 |
C99 | scanf 中用于输入 uint_fast64_t 的 x 格式 |
SCNxLEAST8 |
C99 | scanf 中用于输入 uint_least8_t 的 x 格式 |
SCNxLEAST16 |
C99 | scanf 中用于输入 uint_least16_t 的 x 格式 |
SCNxLEAST32 |
C99 | scanf 中用于输入 uint_least32_t 的 x 格式 |
SCNxLEAST64 |
C99 | scanf 中用于输入 uint_least64_t 的 x 格式 |
#include <stdio.h>
#include <inttypes.h> // 提供 strtoimax 和 intmax_t
#include <errno.h> // 用于错误检查
int main(void) {
const char *str = "123456789012345";
char *endptr;
int base = 10; // 十进制
// 重置 errno 以检测错误
errno = 0;
// 调用 strtoimax
intmax_t num = strtoimax(str, &endptr, base);
// 检查转换是否成功
if (errno == ERANGE) {
printf("数值超出 intmax_t 范围!\n");
} else if (endptr == str) {
printf("未解析到任何数字!\n");
} else {
printf("转换结果: %" PRIdMAX "\n", num); // PRIdMAX 是 intmax_t 的格式化宏
}
return 0;
}
运行结果:
转换结果: 123456789012345