【问题标题】:Why same char is not equal [closed]为什么相同的字符不相等[关闭]
【发布时间】:2019-08-17 12:42:47
【问题描述】:

我有一个简单的代码。

void setup() {
   Serial.begin(9600);
}

void loop() {
   if(Serial.available()) {
      char incomingChar = Serial.read();
      char testChar = ".";

      Serial.println(incomingChar);
      Serial.println(incomingChar == testChar);
   }
}

我打开了串行监视器界面。我将波特设置为 9600 和“无行尾”并输入:ab. 输出为:

14:38:35.675 -> a
14:38:35.675 -> 0
14:38:37.105 -> b
14:38:37.105 -> 0
14:38:38.557 -> .
14:38:38.557 -> 0

为什么来自串口的字符.不等于.

【问题讨论】:

  • 把这个char testChar = ".";改成char testChar = '.';
  • "." 不是char
  • 你试过打印出testChar吗?你可能会对你所看到的感到惊讶。结论:启用编译器警告。
  • 非常感谢和抱歉关于菜鸟问题​​。 '.' 工作。
  • 您需要启用编译器警告并将所有警告视为错误。

标签: c++ arduino arduino-c++


【解决方案1】:

您应该将"." 更改为'.'

"" 表示字符串不是字符

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2021-12-13
    相关资源
    最近更新 更多