Перейти к содержимому
  • 0
XyPMA_

Как получить число через io.read()?

Вопрос

Знаю, такая тема уже была, но мне это не подходит.

Дело в том, что команда modem.open() принимает только цифровые значения, а спомощью io.read() получаем string.

 

Вот это кусочек кода:

 

local hz = io.read()

modem.open(hz)

 

При запуске выдает ошибку о плохом аргументе.

Как это можно обойти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

tonumber(arg) — конвертирует аргумент arg в число; вернёт nil, если конвертация не возможна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

local n = tonumber(io.read())
=============================
local k = io.read()
local n = tonumber(k)
--я бы советовал ещё тогда нужно делать проверку
if ~n then
print("Не удалось преобразовать переменную k: ".k." в число.")
os.exit()
end
==============================
local n = io.read()
local k = n + 0
Изменено пользователем Zed

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Если тебе надо передать значение hz с одного конца карты в другой(или может - только в соседнюю комнату,или ещё куда ты там хочешь).

То алгоритм, думаю, может выглядеть так :

 

1. Ловим строковую переменную.

2. Преобразуем все символы в числа в соответствии с UTF-8(ASCII, КОИ-8 или что там у тебя :) )

3. Пересылаем.

4. Производим обратное преобразование.

 

 

P.S. И никаких тебе ... "плохих аргументов".

Изменено пользователем davial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...