请教一下:
我想输入一个长度Z,它的默认长度是(Z=10.0),如果我是直接回车的
话就是默认长度即Z=10.0,如果不是回车那样Z等于输入的长度。如何判断是直接回车这
部分应如何写呀。
我给你个我自己的想法。
你可以在程序中定一个用于存放输入的栈
#define MAX_STACK_SIZE 80
typedef unsigned char stack_t;
stack_t my_inputs[MAX_STACK_SIZE];
然后设置一个栈的初始指针
stack_t *ptos = my_inputs;
当然在使用栈之前先初始化一下,清除数组中“垃圾值”
memset(my_inputs, (stack_t)0, sizeof(stack_t) * MAX_STACK_SIZE);
(这个函数在mem.h和string.h中均能找到原型)
随后做个循环一个一个字符输入
do {
ch = getch(); /* 这个函数在conio.h中有原型 */
if (ch == 0x08) {/* 0x08好像是退格键吧?麻烦查一下,我不是很清楚 */
/* 如果是退格键则退栈 */
if(ptos > my_inputs) /* 栈内已有数据则后退 */
*ptos-- = (stack_t)0;
else
*ptos = (stack_t)0;
}
else if(ch != '\n' && (ch >= '0' && ch <= '9')) { /* 如果不是换行并且输入的是数字,则压栈 */
++ptos; /* 堆栈向上增长 */
*ptos = ch;
}
} while(ch != '\n');
if(ptos == my_inputs && *ptos == (stack_t)0)
/* 如果栈内没有数据,则设置默认长度 */
z = 10;
else
z = atoi((char *)my_inputs);
atoi是将字符串转换成整数的函数,当然自己也可以实现啦,看你的喜好。
我只是给出了部分代码,完整程序还是请搂主自己写吧!