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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c语言项目(强力推荐,适合进阶和初学者学习)
c语言项目代码,内容分析透彻,适合进阶的人自学的良好的材料
最有名气的C语言资料
你相信这个吗?请试试吧!!C语言资料!!
请修改append函数,利用这个函数实现
.请修改append函数,利用这个函数实现(链表): 两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5 另外只能输出结果,不能修改两个链表的数据。 //coder:LEE //20120307 #include #include using namespace std; struct List { int data; Lis
有哪些适合新手练手的C/C++项目
学习编程专栏连载编程新手练手项目系列之C/C++项目篇,同样也欢迎热爱学习、对Java、Python、前端感兴趣的朋友学习翻阅上三两篇内容。(欢迎大家进行项目的投稿)\n\n此C/C++篇为实验楼 - 国内领先的IT技术实训平台供稿篇。
《鸟哥的Linux私房菜》读书笔记五
在VMware中安装了Ubuntu 10.04,经过了一段时间,再次登录的时候居然进不去了, 一开始不知道怎样在虚拟机中进入到Grub启动界面,网上搜索了一番,按照以下步骤重新为用户设定了新密码。 重启Ubuntu,随即长按shift进入grub菜单;选择recovery mode,回车确认;在Recovery Menu中,选择“Root Drop to root shell prom
老程序员给初学者的一些建议和忠告
网上看到的一篇好文章,自己当年没有读到是损失,现在希望更多的师弟师妹因为这篇文章避免这个损失! 请记住——我不会以码农自卑,但一定以常年码农为耻!
c语言练手项目
C语言实现的猜拳游戏(剪子锤子布),让你与电脑对决 C语言贪吃蛇下载[带源码和解析] C语言文件加密解密软件 C语言写的简单的定时关机程序 C语言动态数组的实现:数组长度随数组元素改变,不会溢出,不会浪费资源 一道题目,玩转C语言指针数组和指向指针的指针 C语言数组灵活多变的访问形式 C语言统计文件中的字符数、单词数以及总行数 C语言统计输入的字符串的长度 C语言输出菱形 C语
绝对经典 C++初学者必看的50个建议
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一
蓝桥杯C语言培训1例题(2) 罗马数字(枚举法的应用)
题目描述古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!罗马数字的表示主要依赖以下几个基本符号:I --> 1V --> 5X --> 10L --> 50C --> 100D ...
【我解C语言面试题系列】004 数组的循环右移问题
【我解C语言面试题系列】004 数组的循环右移问题 数组的循环右移 【题目】有一个整数数组,现要求实现这个整数数组的循环右移。如:1,2,3,4,5 则循环右移两位后结果是:4,5,1,2,3。 方法一:(最最容易想到的办法)void RightCircleShift_00(int buffer[],int shift){    int i,j,tt;