每当我在char数据类型中使用scanf函数时,都会出现错误的输出[关闭]

cbjzeqam  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(97)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
每当我使用用户定义函数来获取像5,623这样的输入值时,将十进制的否转换为二进制的否,我得到了错误的输出,但是当我运行代码而不使用用户定义函数时,我得到了正确的输出。
here my code如果我输入5,我得到的输出是00110110

rwqw0loc

rwqw0loc1#

原因是scanf转换说明符%c读取的是字符,而不是数字('5'代替5)。'5'是字符文字,整型,with the value 53,因为您的系统使用ASCII标准进行字符编码。53将存储在n中。53的二进制表示为110101(您是否犯了复制错误?):32 + 16 + 4 + 1
正如Barmar在评论中所说,如果你想读取一个数字,你应该使用像%d%u这样的转换说明符。- ).

相关问题