vc输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:48:33
vc++程序
在屏幕上有一部分是直接提示的信息,让用户按照提示信息做出选择。
如果用户输入非法字符,提示用户输入了错误信息,让用户重新输入。
删除用户输入错误的提示信息,如果用户输入成功,则进行操作。
但是必须保留最先屏幕输出的信息(不能刷屏)。
#include<stdio.h>
void main()
{
for(int i=1;i<81;i++)
{
printf("*");
}
printf("\n");
printf("%35s%s\n"," ","Menu List");
for(i=0;i<29;i++)
{
printf(" ");
}

for(int j=29;j<63;j++)
{
printf("-");
}
printf("\n");
printf("%29s%s%-30s%s\n"," ","* ","1.Add student's info","*");
printf("%29s%s%-30s%s\n"," ","* ","2.Sort data","*");
printf("%29s%s%-30s%s\n"," ","* ","3.Print student's report","*");
printf("%29s%s%-30s%s\n"," &

关键在于缓存输出,纯C实现如下:
#include<stdio.h>
#include<stdlib.h> //for system()
#include<conio.h> //for getch()
#include<string.h> //for memcpy()
#define M 100 //正确提示信息的个数
#define N 100 //正确提示信息单个长度
#define CMD_COUNT 8 //合法命令个数
void main()
{
char cmd[CMD_COUNT] = {'1', '2', '3', '4', '5', '6', '7', '0'};
char* cmdStr[CMD_COUNT] = {
"Add student's info",
"Sort data",
"Print student's report",
"Save data to file",
"Load data from file",
"Search students",
"Stat Score",
"Exit"
};
char buff[M][N]; //输出信息缓冲
int buff_inputed_count = 0; //已经放入缓冲区的提示信息
char *pBuff = buff[0]; //用于操作输出缓冲
char ch; //输入字符
memset(buff, '\0', M*N); //初始化

pBuff = buff[bu