当我们要循环读入一个字符和一个整型时
程序如下:
#includeint main() { char ch; int n; while(~scanf("%c%d",&ch,&n)){ printf("ch = %c n = %dn",ch,n); } return 0; }
看结果:
可以看出,有乱码的现象
我们知道:%c功能比较强大,几乎任何符号都可以输入,我们在输入字符与整型的时候,用的是分隔符(空格)来隔开,当输入多了就混乱了
改进:将 while(~scanf("%c%d",&ch,&n)){
中%c换为%s,即字符被当做字符串输入,分隔符空格被认为字符串结束符‘ ’
如下代码
#includeint main() { char ch; int n; while(~scanf("%s%d",&ch,&n)){ printf("ch = %c n = %dn",ch,n); } return 0; }
看结果:
或者干脆就定义一个元素的字符型数组
#include#include int main() { char ch[1]; int n; while(~scanf("%s%d",ch,&n)){ printf("ch = %c n = %dn",ch[0],n); } return 0; }



