新手:getchar如何使用啊,老出错。

peak026 2006-04-17 10:44:38
#include <iostream>

using namespace std;

void main()
{
cout << "Please input:";
char c = getchar();
while(c!='q')
{
if (c == 'q')
{
exit(0);
}
else
{
if((c<='f') && (c>='a'))
{
cout << "[" << c <<"]"<< endl;
cout << "Please input:";
}
else
{
cout << "Error!Input again:";
}
//c = getchar(); //问题~!
cin >> c;//正常
}
}

}

如上,如果把cin >> c 换成 c = getchar()便有问题。请问是如何的呢?
...全文
580 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gold123d 2006-04-20
  • 打赏
  • 举报
回复
呵呵,我运行却什么问题也没发现哦.
臭小子 2006-04-20
  • 打赏
  • 举报
回复
#include <iostream>

using namespace std;

void main()
{
cout << "Please input:";
char c;

// while(true)象Windows程序的消息循环一样,一直等待消息的传进
while(true)
{
c = getchar();
if (c != 'q') // 当C不等于q的时候执行下面语句
{
if((c<='f') && (c>='a'))
{
cout << "Please input:";
cout << "[" << c <<"]"<< endl;
}
else
{
cout << "Error!Input again:";
}
}
else // 当C等于q的时候退出循环
break;
}
}
franson12 2006-04-20
  • 打赏
  • 举报
回复
你调试一下应该可以看到在你调用了第2个c = getchar();之后c有一个值了,而不是给你输入
baggio1984 2006-04-18
  • 打赏
  • 举报
回复
c = getchar(); 只接收一个字符,不接收回车,所以运行时会输出 "Error!Input again:";
lfeng273 2006-04-18
  • 打赏
  • 举报
回复
函数名: getchar
功 能: 从stdin流中读字符
用 法: int getchar(void);
程序例:

#include <stdio.h>

int main(void)
{
int c;

/* Note that getchar reads from stdin and
is line buffered; this means it will
not return until you press ENTER. */

while ((c = getchar()) != '\n')
printf("%c", c);

return 0;

}
摘自网络
Duwchy 2006-04-18
  • 打赏
  • 举报
回复
getch()无回显,不爽
etomahawk 2006-04-18
  • 打赏
  • 举报
回复
包含文件#include <conio.h>
然后把getchar ()改成 getch()
chenhu_doc 2006-04-17
  • 打赏
  • 举报
回复
getchar()
每次只能接受一个字符,当你回车回车的时候,getchar()也会把他接受到流里面去
方法:
1: 在接受一个char的时候,用另外一个变量
char stupidChar = getchar();
接受回车;
2: 直接在命令提示符里面输入要输入的字符,直到最后结束输入的时候再回车。。。

snowzl 2006-04-17
  • 打赏
  • 举报
回复
哈哈。。。
aresen 2006-04-17
  • 打赏
  • 举报
回复
记得结帖,给俺几分,俺就知足了。呵呵
aresen 2006-04-17
  • 打赏
  • 举报
回复
因为getchar()函数并不包含在iostream.h中,只要在源程序开头加一个#include <stdio.h>就可以了
Jiana 2006-04-17
  • 打赏
  • 举报
回复
到底什么问题呀????
jinjiajie 2006-04-17
  • 打赏
  • 举报
回复
你把错误信息发给大家看看
fdimim 2006-04-17
  • 打赏
  • 举报
回复
我换成 c = getchar()怎么就没发现什么问题呢?
烟火...... 2006-04-17
  • 打赏
  • 举报
回复
有什么问题?
wanglfmain 2006-04-17
  • 打赏
  • 举报
回复
if (c == 'q')
{
exit(0);
}
else
这一段多余啊

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧