C/C++错误集锦(DEV-C++):使用scanf()函数输入字符后,得到的字符不正确

原文链接:http://www.juzicode.com/archives/4109

 

错误提示:

 scanf()函数输入字符后,得到的字符不正确,源码:

//juzicode.com / vx:桔子code
//dev-c++5.9.2 
#include "stdio.h"
int main(void)
{
    int height;
    char sex;
    scanf("%c %d", &sex, &height);
    printf("\n性别:%c,身高:%d\n", sex, height);
    return 0;
}

 运行结果:

错误原因:

1、sex变量为char型,但是输入的是汉字“男”是宽字节字符,实际是字符数组,仅仅使用用char型变量接收汉字导致转换错误。

  

解决方法:

1、如果用char型变量表示性别,只能输入单个字符表示性别,代码不变化,输入需要使用单字符:

2、使用字符数组char sex[10]接收输入值:

//juzicode.com / vx:桔子code
//dev-c++5.9.2 
#include "stdio.h"
int main(void)
{
    int height;
    char sex[10];//使用字符数组 
    scanf("%s %d", &sex, &height); //改用%s 
    printf("\n性别:%s,身高:%d\n", sex, height);//改用%s 
    return 0;
}

 


关注微信公众号:“桔子code”,欢迎后台留言撩我。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注