周末出去吃火锅看电影摸鱼去了,回来接着好好学习了QAQ;
//显示字符的代码编号
#include <stdio.h>
int main(void)
{
char ch;
printf("请输入一个字符\n");
scanf_s("%c", &ch);
printf("%c的代码编号是%d\n", ch, ch);
return 0;
}
上来就是一个scanf_s,犯了一个巨笨的错。
scanf_s("%c",&ch)写成了
scanf_s("%c,&ch")
一直报错,我左看右看没看出来,去社区提问了,太丢人了...
接下来是一个普通浮点数法和十六进制法来显示float类型的浮点数。
/* showf_pt.c -- 以两种方式显示float类型的值 */
#include <stdio.h>
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n", aboat, aboat);
// 下一行要求编译器支持C99或其中的相关特性
printf("And it's %a in hexadecimal, powers of 2 notation\n", aboat);
printf("%f can be written %e\n", abet, abet);
printf("%Lf can be written %Le\n", dip, dip);
return 0;
}
这段的重点是就是浮点数变量和十六进制浮点数变量的显示。
「printf()函数使用%f转换说明打印十进制记数法的float和double类型浮点数,用%e打印指数记数法的浮点数。如果系统支持十六进制格式的浮点数,可用a和A分别代替e和E。打印long double类型要使用%Lf、%Le或%La转换说明。」
/* altnames.c -- 可移植整数类型名 */
#include <stdio.h>
#include <inttypes.h>
// 支持可移植类型
int main(void)
{
int32_t me32;
// me32是一个32位有符号整型变量
me32 = 45933945;
printf("First, assume int32_t is int: ");
printf("me32 = %d\n", me32);
printf("Next, let's not make any assumptions.\n");
printf("Instead, use a \"macro\" from inttypes.h: ");
printf("me32 = %" PRId32 "\n", me32);
return 0;
}
和一个可移植程序(虽然现阶段我没完全理解)
/* altnames.c -- 可移植整数类型名 */
#include <stdio.h>
#include <inttypes.h>
// 支持可移植类型
int main(void)
{
int32_t me32;
// me32是一个32位有符号整型变量
me32 = 45933945;
printf("First, assume int32_t is int: ");
printf("me32 = %d\n", me32);
printf("Next, let's not make any assumptions.\n");
printf("Instead, use a \"macro\" from inttypes.h: ");
printf("me32 = %" PRId32 "\n", me32);
return 0;
}