我是这样写的:
#include <iostream>
#include<conio.h>
using namespace std;
void main()
{
int i;
char ch[12];
for (i=0;i<12;i++)
{
ch[i]=_getche();
if(ch[i]=='\r')break;
}
ch[i]='\0';
cout<<'\n'<<ch;
}
不知道这个符不符合你的要求
一:原程序中的for (i=0;i<12,ch[i]!=10;i++),我想你是不是想判断for (i=0;i<12&&ch[i]!=10;i++)
二:getchar采用的是行缓冲,只有你在按了回车后才读取一个字符,我换成了getche(),这个函数采用字符缓冲,并具有回显
三:我在运行时发现不能判断ch[i]=='\n',因为发生了字符转换,换行符变成了回车换行,所以我判断ch[i]=='\r'
四:为了保证读取后ch为字符串,所以最后把'\r'换成了'\0'