我想弄一个程序,C++,在控制台下输入字符,同时能够在下一行自动显示上一行输入的字符,输一个字符下一行显示一个,而不是同时一起显示......我刚学C++,请教高手,这个怎么弄,谢谢了 145 [ 标签: 字符, 谢谢, c++ ] 如题。谢谢了 问题补充 2010-09-18 19:30 假如一个控制台程序,我在上面输入1djfdsjflsn 下面一行自动跟踪输出1djfdsjflsn 而不是一起输出显示的,输入1的时候下面自动输出1,输入d下面也输出d... 黑白 回答:4 人气:6 解决时间:2010-09-20 19:14 满意答案 好评率:100% 看你提到了SetConsoleCursorPosition 应该是VC环境,你的程序有问题 1. cin有自己的缓冲区,你写的那个如果不输入回车不会执行cin 2. 如果用SetConsoleCursorPosition,输出多少行,什么位置其实很轻松 3. 严格来说,如果要支持像终端的效果,这个要复杂很多,不能用输入,而是要监听WM_KEYDOWN消息,从而来控制输出, 以下的程序,可以运行在VS2005中,如果只是输入字母数字和基本的符号,没问题,输入回车退出,不支持Del跟退格,有兴趣可以继续完善。 #include "stdafx.h" #include <iostream> #include <conio.h> #include<windows.h> using namespace std; void PrintChar(char c,int count) { HANDLE hCon;//定义一个句柄 hCon = GetStdHandle(STD_OUTPUT_HANDLE); //获得输出设备的句柄 COORD setps; //定义结构体变量 setps.X = count; setps.Y = 1; SetConsoleCursorPosition(hCon,setps); //定位 cout<<c; setps.X = count; setps.Y = 0; SetConsoleCursorPosition(hCon,setps); //定位 cout<<c; } void main() { char c; cout<<endl; int count=0; do { c=(char)_getch(); if (c!='\n') { PrintChar(c,count++); } } while (c!='\n'); }