新手: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()便有问题。请问是如何的呢?
...全文
508 16 点赞 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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()怎么就没发现什么问题呢?
  • 打赏
  • 举报
回复
有什么问题?
  • 打赏
  • 举报
回复
wanglfmain 2006-04-17
if (c == 'q')
{
exit(0);
}
else
这一段多余啊
  • 打赏
  • 举报
回复
相关推荐
发帖
新手乐园
加入

3.3w+

社区成员

C/C++ 新手乐园
申请成为版主
帖子事件
创建了帖子
2006-04-17 10:44
社区公告
暂无公告