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

[求助]使用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编辑过]