注册 登录
编程论坛 C++教室

关于流和控制台的问题

heefly 发布于 2008-01-05 15:02, 726 次点击
流和控制台两个概念我一直分不大清楚,请高手讲讲区别,

下面这段代码 是关于getchar()和getch()的用法,我知道getchar是从流读取数据,getch是从控制台读取,但是不回显。getche回显。getche也是从控制台读取。

在一个关于循环控制的代码中,getchar可以用'\n'来作为循环结束的控制符,但是用getch或者getche就不行,不知道是为什么。
(讲的有点多,也不知道讲清楚了没有,请多多关照新手)
下面是代码:
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(int argc, char* argv[])
{
    char c;
  while ((c=getch())!='\n')   //这里用getchar()敲回车就退出循环,OK了,用getche()或者用getch()死活不行
    {                    
          printf("%c",c);
      _putch(c);   
    }
   printf("\n\n");
    return 0;
}
好象清空流也不行
2 回复
#2
jiangzw6252008-01-05 18:41
getch()返回的是'\r'不是'\n'
#3
heefly2008-01-06 19:20
先谢谢了!确实是那样。
但是要返回'\n', 键盘怎么输入啊?
1