【发布时间】:2023-03-23 20:39:01
【问题描述】:
想知道如何测试保存在 char 数组中的输入,例如...
char input[INPUT_SIZE];
并使用
fgets(input,INPUT_SIZE,stdin);
要从用户那里获取输入,但想知道如何使用 if 语句来测试用户输入是否为例如 ctrl + d 或任何 ctrl + anykey?
我尝试使用这样的 ascci 值.. 是测试 ctrl d 的示例
if(result = 'EOT') {printf("EOT");}
结果也是一个字符数组。
【问题讨论】:
-
您的想法是正确的,但
'EOT'不是 Ctrl-D 的 ASCII 值(您正在寻找 4)。您的示例无法编译,或者至少会发出警告。 -
所以我应该测试它的结果 = 4 吗?
-
if(result = 'EOT')行在 C 中的很多方面都是错误的。 -
那你会如何改写它?
-
=是赋值运算符,不是比较运算符,'EOT'不是char。另请阅读fgets的文档以查看它在缓冲区中存储的确切内容以及何时停止读取。 EOT 的 ASCII 值为 4,尝试运行 this code 并查看输出中是否出现 4。
标签: c input comparison control-characters