以下代码使用 getchar() 接受一行输入。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *rawString = (char *)malloc(200*sizeof(char));
char *rawStringInitial = rawString;
char c;
c=getchar();
while(c!='\n')
{
*rawString=c;
rawString++;
c=getchar();
}
*rawString='\0';
printf("\n[%s]\n",rawStringInitial);
return(0);
}
打字时,如果我按退格键, getchar() 是否也应该接收它并存储在 rawString 指向的位置?然而,输出只是显示最终的字符串,没有任何特殊字符。有人可以解释为什么吗?
标准输入(通常)是缓冲的;像退格键这样的非打印字符由终端服务器处理,像这样的库函数getchar()
永远不会见到他们。
如果您需要读取原始击键,那么您将需要使用 C 标准库之外的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)