当前位置: 代码迷 >> C语言 >> [原创]scanf 与gtechar() 的区别
  详细解决方案

[原创]scanf 与gtechar() 的区别

热度:819   发布时间:2007-03-12 13:55:03.0
[原创]scanf 与gtechar() 的区别

大家可以分别用scanf()和getchar()运行一下看下区别 我运行的时候用scsnf就需要多输入一次需要求的数
我用的free3.5
#include <stdio.h>
void main()
{
char x,y;
printf("请按回车键开始\n");
x=getchar(); //scanf("%c %d",&x);列如我用scanf这样有什么不同?
printf("%c\t%d\n",x,x);
y=x-32;
printf("%c\t%d\n",y,y);
}

搜索更多相关的解决方案: gtechar  scanf  

----------------解决方案--------------------------------------------------------
scanf("%c %d",&x);
能这样吗?怀疑中....
----------------解决方案--------------------------------------------------------
getchar()是只能提取一个字符

scanf()可以提取数值也可以提取字符,但是必须要输入字符格式,或者数值格式

[此贴子已经被作者于2007-3-12 14:40:11编辑过]


----------------解决方案--------------------------------------------------------
以下是引用mayudong1在2007-3-12 14:38:26的发言:
scanf("%c %d",&x);
能这样吗?怀疑中....

不可以,这个是错的
----------------解决方案--------------------------------------------------------
scanf("%c %d",&x);
   
 
 但是我输入两次 要求的字符 居然运行结果正确  列如我要求 a 对应的ACSiI码 和大写字母及ACSII码
我输入 a 按回车键后在次输入a 就能运行了 思考中~~~~~~~~~~`
----------------解决方案--------------------------------------------------------
这样就是正确的
#include <stdio.h>
void main()
{
char x,y;
printf("请按回车键开始\n");
scanf("%c",&x); //与这里使用 x=getchar();没区别了吧?
printf("%c\t%d\n",x,x);
y=x-32;
printf("%c\t%d\n",y,y);
}

----------------解决方案--------------------------------------------------------

以下是引用sztonyyang在2007-3-12 15:21:08的发言:
scanf("%c %d",&x);
   
 
 但是我输入两次 要求的字符 居然运行结果正确  列如我要求 a 对应的ACSiI码 和大写字母及ACSII码
我输入 a 按回车键后在次输入a 就能运行了 思考中~~~~~~~~~~`

你这个是不规范的

一个变量只能有一个值
----------------解决方案--------------------------------------------------------
嗯 是我自己用错了已经检查出来了
----------------解决方案--------------------------------------------------------

  相关解决方案