首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查C++中的"backspace“字符

如何检查C++中的"backspace“字符
EN

Stack Overflow用户
提问于 2010-12-06 12:47:33
回答 4查看 52.8K关注 0票数 23

我想知道如何检查用户是否输入了"backspace“字符。

我在我的C程序中使用getch() function i.e. "key = getch()",我想检查一下什么时候按了退格键。这行代码:

代码语言:javascript
运行
复制
 if(key = '\b') { ....

不起作用。

EN

回答 4

Stack Overflow用户

发布于 2010-12-06 13:14:29

i/o流的类型可能会有所帮助。标准输入流是一种行缓冲流,在您向其中写入'\n‘字符之前,它不会刷新。在缓冲区已满之前,已满缓冲的流永远不会刷新。如果您在完整缓冲区流中编写退格符,则可能会捕获'\b‘。

参考unix environment advantage程序。

票数 1
EN

Stack Overflow用户

发布于 2016-09-07 14:57:49

您没有说明getch()函数来自哪个库(它不是C标准的一部分),但是如果它来自ncurses,那么您可以根据KEY_BACKSPACE检查ncurses的值。

票数 1
EN

Stack Overflow用户

发布于 2015-05-28 00:25:02

试试这个:

代码语言:javascript
运行
复制
#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;行一样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4363309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档