鱼C论坛

 找回密码
 立即注册
查看: 976|回复: 3

[已解决]字符转ASCⅡ码

[复制链接]
发表于 2020-10-25 11:13:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void main()
{
        char ch;
        printf("输入一个字符:");//提示输入性语句
        scanf("%c", &ch);                //以%c格式读入字符,存到ch变量中
        printf("字符%c中的ASCⅡ码值是%d.\n", ch,ch); //按%c和%d格式输出ch
}


为什么最后一行的printf()中要打ch,ch而不是ch?
最佳答案
2020-10-25 11:19:03
本帖最后由 昨非 于 2020-10-25 11:20 编辑

因为printf()格式控制串里每个%对应后面的一个变量
你这里有两个%,分别是%c和%d ,虽然输出的是同一个变量ch,但格式不同,所以后面要跟两个变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 11:19:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昨非 于 2020-10-25 11:20 编辑

因为printf()格式控制串里每个%对应后面的一个变量
你这里有两个%,分别是%c和%d ,虽然输出的是同一个变量ch,但格式不同,所以后面要跟两个变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 11:28:08 | 显示全部楼层
字符和数字都是以二进制数字形式存储在内存中的, %c和%d读的都是同一个内存地址,  只是显示形式不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-25 11:28:30 | 显示全部楼层
本帖最后由 yuxijian2020 于 2020-10-25 11:33 编辑

printf函数里第一个参数中%c(或者%d,%f,%ld,%lf等等)就代表占位符,就是告诉编译器后面要带上几个参数(用来替换这些占位符)
你这里有2个占位符就代表后面要额外带2个参数,但是如果后面不是2个参数,编译器找不到额外的第二个参数就会报错
重点是后面的每个参数只能替换一个占位符,哪怕你是用相同的变量替换不同的占位符,有几个占位符,你的变量就要写几次
占位符和后面的参数数量必须是相等的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表