我想知道如何检查用户是否输入了"backspace“字符。
我在我的C程序中使用getch() function i.e. "key = getch()"
,我想检查一下什么时候按了退格键。这行代码:
if(key = '\b') { ....
不起作用。
发布于 2010-12-06 13:14:29
i/o流的类型可能会有所帮助。标准输入流是一种行缓冲流,在您向其中写入'\n‘字符之前,它不会刷新。在缓冲区已满之前,已满缓冲的流永远不会刷新。如果您在完整缓冲区流中编写退格符,则可能会捕获'\b‘。
参考unix environment advantage程序。
发布于 2016-09-07 14:57:49
您没有说明getch()
函数来自哪个库(它不是C标准的一部分),但是如果它来自ncurses,那么您可以根据KEY_BACKSPACE
检查ncurses的值。
发布于 2015-05-28 00:25:02
试试这个:
#include <stdio.h> /* printf */
#include <ctype.h> /* isalpha isdigit isspace etc */
#define FALSE 0
#define TRUE 1
/* function declarations */
int char_type(char);
main()
{
char ch;
ch = 127;
char_type(ch);
ch = '\b';
char_type(ch);
return 0;
}
int char_type(char ch)
{
if ( iscntrl(ch) != FALSE)
printf("%c is a control character\n", ch);
}
这是一个完整的程序,但它只测试控制字符。你可以使用它的原则,你的选择。也只是在学习!
参见:http://www.tutorialspoint.com/c_standard_library/ctype_h.htm或查找C标准库的ctype.h头文件的函数。
你得到了输入,这很好。感谢大家提供的信息。我只是在查找退格代码,发现了这个问题。
BTW在任何字符之前尝试'\0‘。不确定这会做什么,但它会停止它之后的所有代码。这是不是像return 0;行一样?
https://stackoverflow.com/questions/4363309
复制相似问题