求指点,使用getchar()判断,是否输入回车的程序解决方案

求指点,使用getchar()判断,是否输入回车的程序
今日使用getchar()写了一个可以输入空格字符串的程序,但是得到的结果很自己预想的不一样
上程序
[code=C/C++][/code]
#include <iostream>
using namespace std;
main()
{
int i;
char str[20];
char *p;
p=str;
for(i=0;*(p+i)!='\n';i++) //这一行
{
*(p+i)=getchar();
}
cout<<"1"<<endl;
cout<<p;
return 0;
}

想通过for循环,输入字符串数组的内容,使用getchar()获得键盘的输入值,然后赋予给str中的元素
每次都判断*(p+i)!='\n',若是回车的话将会跳出for循环
但是实际情况是,当按下回车后并为退出循环

后来查询了一下 getchar()的用法,是先将输入的数据存在键盘的缓冲区,按下回车时输入
那我输入一个数据后,按回车表示数据已经存储
然后连按两次回车是不是表示存储的是回车字符呢?
求解释,多谢!

------解决方案--------------------
当你按下回车的时候其实也将回车字符一起存入了缓冲区中了,没必要按两下
------解决方案--------------------
用getch(),然后判断'\r'
------解决方案--------------------
getchar()和getch()的区别。
------解决方案--------------------
不会的,据我所知,在DOS窗口运行时,回车键是不会作为一个字符输入的,你自己最好在程序上调一下,这玩意主要靠自己悟,问问题多了也解决不了什么问题。
希望对你有帮助!
------解决方案--------------------
enter键信号你程序本身就没有进行获取