c语言char用scanf,[求助]使用scanf时,char型的正确输入方法应该是如何?

博客讨论了在C语言中使用scanf函数输入字符型变量时遇到的问题。当先输入整数后再输入字符,换行符被误读为字符变量的值。通过在输入字符前插入空格或使用getchar函数可以解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[求助]使用scanf时,char型的正确输入方法应该是如何?

首先是第一段代码

#include

#include

main()

{

char c1,c2;

scanf("%c,%c",&c1,&c2);

printf("c1='%c',c2='%c'\n",c1,c2);

system("pause");

}

建立c1,c2为字符型变量,输入c1,c2的值后输出c1,c2。

输入:

a,b

输出:

c1='a',c2='b'

以上没有问题。

然后我修改了一下代码

#include

#include

main()

{

int a,b;

char c1,c2;

scanf("%d,%d",&a,&b);

scanf("%c,%c",&c1,&c2);

printf("c1='%c',c2='%c'\n",c1,c2);

system("pause");

}建立了两个整型变量 a,b。并先用scanf输入a,b的值。然后再输入c1,c2的值。

输入:

12,34

a,b

输出:

c1='

',c2='f'

出问题了……这应该是程序把换行符\n当成了c1的值。我刚开始以为这里应该断开一下,于是又改了下代码。

#include

#include

main()

{

int a,b;

char c1,c2;

scanf("%d,%d",&a,&b);

printf("1\n");

scanf("%c,%c",&c1,&c2);

printf("c1='%c',c2='%c'\n",c1,c2);

system("pause");

}在输入a,b的值后,让它先输出个1,然后再输入c1,c2。

输入:

12,34

(输出1)

a,b

输出:

c1='

',c2='f'

依然如旧……

于是我用了第二个程序,不过改变了一下输入方法。

输入:

12,34a,b

输出:

c1='a',c2='b'

以上。

我的问题是,要如何写代码才能保证在不出错的情况下将a,b的值和c1,c2的值分为两行输入?

编辑器是dev c++

[此贴子已经被作者于2007-9-19 10:52:14编辑过]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值