C语⾔中固定⼤⼩的数据类型的输⼊和输出
在使⽤C语⾔时,对数据的⼤⼩要求⽐较严格时,例如要使⽤32位的整数类型,这时要使⽤ int32_t,⽆论平台如何变化,数据⼤⼩仍然是32位,固定位数的数据类型还有 uint32_t、uint64_t 等等。
当要输⼊输出这些数据时,格式字符串该如何写?C标准库提供了⼀系列的macro⽅⾯构造格式字符串,这些定义于头⽂件 <inttypes.h>。
对⽂件中内容摘了了⼀段wiki的介绍
Printf format string
The macros are in the format PRI{fmt}{type}.
Here {fmt} defines the output formatting and is one of d (decimal), x (hexadecimal), o (octal), u (unsigned) and i (integer).
{type} defines the type of the argument and is one of N, FASTN, LEASTN, PTR, MAX, where N corresponds to the number of bits in the argument.
Scanf format string
The macros are in the format SCN{fmt}{type}.
Here {fmt} defines the output formatting and is one of d (decimal), x (hexadecimal), o (octal), u (unsigned) and i (integer).
{type} defines the type of the argument and is one of N, FASTN, LEASTN, PTR, MAX, where N corresponds to the number of bits in the argument.
打开头⽂件 <inttypes.h> 可以看到这些具体是什么
很清楚看到只是些printf格式字符串的数据类型替代符,系统已经帮我们定义好了,使⽤起来也很⽅便,直接套⽤就⾏了。
#include <stdio.h>
#include <stdint.h>
字符串是什么类型的#include <inttypes.h>
int main()
{
int32_t num = 0;
printf("Input a number: ");
scanf("%"SCNd32, &num);
printf("The input number is: %"PRId32"\n", num);
return0;
}
想看详细的介绍,可以参考wiki的⽂档:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。