Зависла компиляция

ДВС, товарищи!
Ввел в код новую строку с выводом на экран.
И после её введения компиляция зависает.
Для понимания, я пишу код 2 недели. До этого последний раз в школе в начале двухтысячных на pascal’е писал.
Вот строка, которая “вешает” компиляцию: что-то противоречивое написал???

lcd.print("XO/\");

PS: Где этот обратный апостроф на клавиатуре, а то получилось только ctrl+c+ctrl+v??

Не получается вставить скриншот, но вот примерно такие ошибки валятся на много экранов:
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
.
.
.

Если Слэши убрать, компиляция проходит удачно.

Почитайте что-нибудь про управляющие последовательности в Си.

А что Вы этим хотели сказать? Что здесь, по-Вашему, написано?

(для решения проблемы, см. ответ @andriano выше)

“Холл” на китаедисплее, полагаю.

1 лайк

Я же объяснил, что больше 20 лет назад программировал школьную программу на Паскале, можно же немного снисходительнее… Понимаю, что всё связано со слэшами, но по сути - это же просто вывод символов?!

И да, я понимаю, что можно обратный слэш удвоить, и логику сохранить, и не будет проблем у компилятора, но дисплей этого не поймёт.
Вопрос, получается, что обратный слэш можно выводить на экран через как?

@ЕвгенийП
Пока не разобрался как цитаты делать, считайте, что я просто хочу обратный слэш вывести на экран…

Зачем Вы задаете вопросы, если не читаете ответы?

Если бы Вы вчера сделали, что Вам посоветовал @andriano, то проблема решилась в течение нескольких минут. Но Вы, почему-то, не хотите и пальцем шевельнуть самостоятельно.

Нате, кушайте - lcd.print("XO\\");, только так Вы останетесь вечным чайником (но это Ваша проблема).

@ЕвгенийП
Ну смысл сразу тыкать пальцем и ругать на чём свет стоит?! И про чайника оскорблять тоже…
Я сразу же провентилировал вопрос управляющих последовательностей, как @andriano написал.
Я, вчера, 3 сообщения выше же написал: “И да, я понимаю, что можно обратный слэш удвоить и не будет проблем у компилятора, но дисплей этого не поймёт.”

Так что Ваш вариант, который “Нате, кушайте”, Евгений, мне еще вчера не подошел.
вместо \ на экране “¥”.

Чего ему не понимать? Судя по этой фразе, Вы таки не прочитали то, что советовал @andriano

Это означает у Вашего дисплея в позиции, где должен быть \ находится ¥. Потому, что при такой записи, в строке-то точно бэкслеш.
Так что ищите код \ у Вашего дисплея и выводите именно тот код.
Как искать и выводить код знаете, или рассказать надо?

Какие нежные нынче чайники пошли. Прям из китайского фарфору :sweat_smile:

@ЕвгенийП ,
Знаете, я сразу написал, на старте, что занимаюсь всего 2 недели. На 4ом десятке не так просто всё осваивать с нуля. И сразу тапками бросаться - так себе, не приятно. вместо чувства поддержки, это вызывает скорее неприязнь.

Вы сами даже пишете, что всё зависит не только от управляющих последовательностей, но оказывается и от позиций дисплея. Я для этого и спрашиваю, чтобы на мысль навели, а не закидали тапками и дали готовое решение. С учетом того, что предложенное Вами “Нате, кушайте” так и не подошло.

@v258
Ещё раз повторюсь, что сразу предупредил, что практики 2 недели. Можно скидку делать или как? Неужели Вам в середине сентября в 1ом классе учительница говорила, что Вы останетесь чайником если не разберетесь в теме семилинейного функционала?

Т.е. Вы

решили поиграть в обиженную гимназистку, вместо того, чтобы сделать как Вам сказали?

Ну, успехов! Обижайтесь дальше. Может, кому поможете воду перевезти.

слушайте, если вы на каждое замечание будете разводить по два абзаца обиженных нюней - идите сразу на …юх. Вот честно, это для всех будет лучше - сохраним кучу времени и нервов.
Вы даже приблизительно не представляете. что значить “ругать и закидывать тапками” на этом форуме. Вас пока никто и не начинал ругать.

Если вы занимаетесь программированием 2 недели - тем более глупо спорить с профессионалами, просто делайте что вам говорят.

@ЕвгенийП ,
Просто лишний раз убеждаюсь, что бестактных людей много в любых областях деятельности.

1 лайк

Чайник и есть. Это оскорбление? А почему? Чувствуете себя умудренным опытом дядькой, а вас тут не уважают? А за что?
Тут, кстати, основной контингент - сильно за 50, куда вам с вашим четвертым десятком :wink:

Видите ли, Ваш второй абзац противоречит первому.
Другими словами “вентиляция” не привела к “пониманию”.
На дисплей будет подан ровно один слеш, тк. компилятор преобразует ту строку, которую Вы написали, в ту, которая требуется. Т.е. в прошивке строка уже будет именно такая, которую Вы попросили с использованием управляющих последовательностей, а самих управляющих последовательностей в ней не будет.
Это еще и к тому, что тот факт, что раньше Вы учили Паскаль, не всегда поможет Вам писать на Си: компилятор Си преобразует то, что написано внутри кавычек. В отличие от Паскаля.

Тут возможно только два вариата:

  1. Вы опять что-то напутали, не разобравшись.
  2. Ваш дисплей не поддерживает стандарт ASCII (американский стандарт на семибитную кодировку символов алфавита, разработанный еще во времена азбуки Морзе). Если используете явно нестандартный дисплей, то обязательно следовало указать его тип и упомянуть об особенностях.

PS. И еще: тут основной контингент примерено вдвое старше Вас, так что ссылаться на возраст выглядит довольно смешно.

всем спасибо за помощ. вопрос решил.
Символ в дисплее не отыскал.

Решение сделал такое:

byte slesh[8] = {
  0b10000,
  0b01000,
  0b01000,
  0b00100,
  0b00100,
  0b00100,
  0b00010,
  0b00001
};
lcd.createChar(1, slesh);
lcd.write(1);