c语言:一个汉字不能存入char类型中

在C语言中,使用getchar函数读取汉字导致错误,因为char类型只处理单字节的字符。当输入汉字,它占用两个字节,引发不匹配。解决方案是使用puts和gets函数来处理汉字的输入和输出,将汉字存储在字符数组中。
摘要由CSDN通过智能技术生成
printf("请输入性别:");
pers[size].gender = getchar();
printf("请输入年龄:");
scanf("%d", &pers[size].age);
printf("请输入工龄:");
scanf("%d", &pers[size].workage);
while (1) {
	if (pers[size].workage >= pers[size].age) {
		printf("输入错误,工龄应小于年龄,请重新输入工龄:");
		scanf("%d", &pers[size].workage);
	}
	else break;
}

 代码部分如上(前面定义了size的值),尝试将getchar改成scanf("%c",&pers[size].gender)结果相同

输入一个汉字

 运行结果为:

 发生错误:直接跳过下面所有scanf语句进入while死循环

原因:char是单个字符占一个字节,而汉字占两个字节

解决办法:1.改用puts和gets输出和输入汉字,把汉字放入数组中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值