2 qq 34305902 qq_34305902 于 2016.03.16 23:37 提问

c语言新手,请问我这个程序有问题吗?

#include
int main(void)
{
char ch;
printf("Please enter a character.\n");
scanf("%c",&ch);
printf("The code for %c is %d.\n",ch,ch);
return 0;
}

为什么我输入字符时,按回车,屏幕并没有出现打印的字符串,光标移到下一行的开头?

7个回答

caozhy
caozhy   Ds   Rxr 2016.03.16 23:44
已采纳
    char ch;
    printf("Please enter a character.\n");
    ch = getchar();
    printf("The code for %c is %d.\n", ch, ch);
    return 0;
qq_34305902
qq_34305902 为什么使用scanf()函数时没有效果,是编译器的问题吗,我在电脑能用,在手机的编译器就用不了
接近 2 年之前 回复
caozhy
caozhy 回复qq_34305902: getchar就是get char,get=获取,char=字符
接近 2 年之前 回复
qq_34305902
qq_34305902 请问这个getchar有什么用,谢谢,这个有效果
接近 2 年之前 回复
cxsmarkchan
cxsmarkchan   2016.03.17 00:21

你的编译环境是什么?我在vs2010和mingw(g++)环境下编译你的程序,运行结果都是正确的(回车后立即输出)。

qq_34305902
qq_34305902 我的是安卓的编译器,是环境问题吗
接近 2 年之前 回复
qq_34305902
qq_34305902   2016.03.17 00:34

我的是安卓编译器c4droid,是不是编译器的问题?

Longyu_wlz
Longyu_wlz   2016.03.17 07:05

在这里你必须明确 字符与字符串的区别。 字符,说白了就是最小的整型,一般占一个字节,字符变量名称对应的是整数值。字符串是至少一个字符与‘\0’
组合得到的,字符串变量对应的是字符串首字符的地址。当你令ch为char型时,ch只能存储一个简单的字符,而非字符串。当你输入了一个长度超过单个
字符的字符串后,s由你的编译器决定scanf()函数到底读取哪个字符,这种结果通常是未定义的。

runmin1
runmin1   2016.03.17 08:41

输入单个字符程序是没有问题的,如果说有问题的话就是longyu__wlz说的那样了

qq_30408111
qq_30408111   2016.03.17 10:08

你的程序没有问题,试试换个编译器

bingfeng288
bingfeng288   2016.03.16 23:43

把反斜杠前的点去掉试试

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!