блуждающий \342 в программе

Когда я пытаюсь скомпилировать свой код, он говорит: "Блуждающие '\342' в программе

Мой код:

#include <IRremote2.h>
#include <IRremoteInt.h>


#define pinIN 11

uint32_t val;
uint32_t prev;
int fre = 0;


IRrecv remote(pinIN);
decode_results result;

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

  remote.enableIRIn();
  pinMode(2, OUTPUT);
}

void loop() {
  if (remote.decode(&result)) {
    val = result.value;
    if (val == 0xFFFFFFFF) {
      val = prev;
    }
    prev = val;
    detekceKlaves();

    remote.resume();
  }
}

void detekceKlaves() {


  switch (val, HEX) {

    case 0x807FB24D‬:
      Serial.println("Stisknuto PLAY");
      tone(2, fre);
      break;
    case ‭0x807FB04F‬:
      Serial.println("Stisknuto STOP");
      noTone(2);
      break;
    case 0x807F18E7:
      Serial.println("Stisknuto VOL+");
      fre += 10;
      break;
    case 0x807F906F:
      Serial.println("Stisknuto VOL-");
      fre -= 10;
      break;
    case 0x807F9867:
      Serial.println("Stisknuto OFF/ON");
      fre = 0;
      break;
    default:
      Serial.println("Stisknuta jina klavesa");


  }
}

Код ошибки:

Arduino: 1.8.10 (Windows 10), Board: "Arduino Uno"

irTEST:43:20: error: stray '\342' in program

     case 0x807FB24D‬:

                    ^

irTEST:43:21: error: stray '\200' in program

     case 0x807FB24D‬:

                     ^

irTEST:43:22: error: stray '\254' in program

     case 0x807FB24D‬:

                      ^

irTEST:47:10: error: stray '\342' in program

     case ‭0x807FB04F‬:

          ^

irTEST:47:11: error: stray '\200' in program

     case ‭0x807FB04F‬:

           ^

irTEST:47:12: error: stray '\255' in program

     case ‭0x807FB04F‬:

            ^

irTEST:47:23: error: stray '\342' in program

     case ‭0x807FB04F‬:

                       ^

irTEST:47:24: error: stray '\200' in program

     case ‭0x807FB04F‬:

                        ^

irTEST:47:25: error: stray '\254' in program

     case ‭0x807FB04F‬:

                         ^

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino: In function 'void detekceKlaves()':

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino:43:5: warning: overflow in implicit constant conversion [-Woverflow]

     case 0x807FB24D‬:

     ^~~~

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino:47:5: warning: overflow in implicit constant conversion [-Woverflow]

     case ‭0x807FB04F‬:

     ^~~~

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino:51:5: warning: overflow in implicit constant conversion [-Woverflow]

     case 0x807F18E7:

     ^~~~

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino:55:5: warning: overflow in implicit constant conversion [-Woverflow]

     case 0x807F906F:

     ^~~~

C:\Users\maxim\Documents\Arduino\irTEST\irTEST.ino:59:5: warning: overflow in implicit constant conversion [-Woverflow]

     case 0x807F9867:

     ^~~~

Multiple libraries were found for "IRremote2.h"
 Used: C:\Users\maxim\Documents\Arduino\libraries\IRremote2
exit status 1
stray '\342' in program

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Пожалуйста, помогите

, 👍1

Обсуждение

возможные непечатаемые символы... скопируйте код из вашего вопроса выше и попробуйте его скомпилировать, @jsotola

Как сказал @jsotola, скопируйте код. Сначала попробуйте вырезать и вставить в новый файл. Если это не сработает, скопируйте его, перепечатав в новый файл. Как вы получили непечатаемые символы? Вероятно, лучшим способом (также трудным для нового разработчика) было бы найти и использовать восьмеричный редактор для поиска и удаления проблемных символов., @st2000

используйте что-то вроде блокнота++ для редактирования, @jsotola


1 ответ


Лучший ответ:

1

Если я скопирую предоставленный вами код в vim-редактор, вы увидите странные символы. <202c>

switch (val, HEX) {
  4 
  5     case 0x807FB24D<202c>:
  6       Serial.println("Stisknuto PLAY");
  7       tone(2, fre);
  8       break;
  9     case <202d>0x807FB04F<202c>:

Я удалил их для вас:

#include <IRremote2.h>
#include <IRremoteInt.h>

#define pinIN 11

uint32_t val;
uint32_t prev;
int fre = 0;

IRrecv remote(pinIN);
decode_results result;

void setup() 
{
  Serial.begin(9600);
  remote.enableIRIn();
  pinMode(2, OUTPUT);
}

void loop() 
{
  if (remote.decode(&result)) 
  {
    val = result.value;
    if (val == 0xFFFFFFFF) 
    {
      val = prev;
    }
    prev = val;
    detekceKlaves();
    remote.resume();
  }
}

void detekceKlaves() 
{
  switch (val, HEX) 
  {
    case 0x807FB24D:
      Serial.println("Stisknuto PLAY");
      tone(2, fre);
      break;
    case 0x807FB04F:
      Serial.println("Stisknuto STOP");
      noTone(2);
      break;
    case 0x807F18E7:
      Serial.println("Stisknuto VOL+");
      fre += 10;
      break;
    case 0x807F906F:
      Serial.println("Stisknuto VOL-");
      fre -= 10;
      break;
    case 0x807F9867:
      Serial.println("Stisknuto OFF/ON");
      fre = 0;
      break;
    default:
      Serial.println("Stisknuta jina klavesa");
  }
}
,

@MaximMaximS, вы скопировали код откуда-то с ориентацией текста справа налево, например, с арабского веб-сайта ... шестнадцатеричный код 202d - это символ юникода, который управляет направлением текста ... https://www.codetable.net /hex/202d, @jsotola

Спасибо, но я не копировал. Я написал это., @MaximMaximS