c语言问题,很急,下面的程序在哪里出错了
#include<stdio.h>voidascii(charc){printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c...
#include <stdio.h>
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
ascii(c);
goto loop;
} 展开
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
ascii(c);
goto loop;
} 展开
6个回答
展开全部
#include <stdio.h>
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
ascii(c);
getchar(); //这儿要加一个getchar(),缓冲
goto loop;
}
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
ascii(c);
getchar(); //这儿要加一个getchar(),缓冲
goto loop;
}
追问
为什么这里要加个getchar()呢
,我不太懂,新手啊
追答
因为你输入的字符存在于键盘缓冲区,按回车确认时,回车字符也存在于缓冲区,所以第一次读取的是你输入的字符,再得到的就会是回车字符,只有加一个getchar(),将回车字符获取,才能再次获取输入字符。
百科:http://baike.baidu.com/view/751665.htm
展开全部
#include <stdio.h>
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
int main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
getchar(); //吸收掉输入的'\n'就ok啦
ascii(c);
goto loop;
return 0;
}
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
int main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
getchar(); //吸收掉输入的'\n'就ok啦
ascii(c);
goto loop;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一、printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c); //这里多了个参数c
二、c=getchar();如果你不希望有回车符的输出,在其后要再加一个getchar();即:
c=getchar();
getchar(); //吸收回车
二、c=getchar();如果你不希望有回车符的输出,在其后要再加一个getchar();即:
c=getchar();
getchar(); //吸收回车
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
getchar();//去掉你敲入的回车
ascii(c);
goto loop;
}
void ascii (char c)
{
printf("字符%c的ascii码十进制是:%d\n八进制是:%o\n,十六进制是:%x\n",c,c,c,c);
}
void main()
{
char c;
loop:printf("请输入字符:");
c=getchar();
getchar();//去掉你敲入的回车
ascii(c);
goto loop;
}
追问
请问怎么去掉啊,我不太懂的,刚学
追答
比如你要输入符号'C',
你要敲回车把!
实际上你输入了两个字符
C和回车符号.
按你的代码就要循环两次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用getchar()每次读取一个字符,输入字符a,敲入回车,这个时候在输入流中会有字符a跟回车两个值,第一次循环的时候,字符a读入,调用一次ascii()函数,这时输入流中还有回车符,将回车读入,在此执行一次ascii()函数,此时输入流中没有了,程序暂停等待输入,楼下的告诉你用getchar()单独的调用一次的方法,这个时候会把输入流中剩余的回车读入,防止二次输出,但是这个方法也有些弊端,就是如果你输入多个字符的时候会跳过你输入的某些个字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-10
展开全部
"#include"? 这个不需要吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询