Случайности не случайны
Добрый вечер! Меня попросили помочь с задачей, задачу я решил, но не могу организовать ввод правильно как по условию. Задача про шахматную доску, в первой строке ввода два числа rows и cols, это я сделал, а во второй произвольное количество пар чисел(координат вырезаных из доски клеток) разделенных запятыми. Я на паскале уже давно ничего не писал и совсем забыл как там организовать ввод этого всего подскажите пожалуйста
пример ввода:
3 3
0 0, 1 1, 2 1, 2 2
пример ввода:
3 3
0 0, 1 1, 2 1, 2 2
c:char;
Если ты ожидаешь увидеть в строке число, то
read(a);
если пробел или запятую, то
read(c);
Дальше двойной цикл.
а как проверить на конец строки? наличием запятой в конце циклом с постусловием?
Если это у тебя из файла вводится, то цикл можно до eof(file1) делать.
Если из консоли, то до того момента, как на месте запятой попадётся символ, не являющийся таковой. То есть, например, символ конца строки, $30, если мне память не изменяет.)
не работает, ругается на второй read ошибка ввода, строку ввожу как в примере выше, row и col типа byte, с типа char
Если это Delphi, то можно считывать по символам и strtoint юзать, а так придётся такю конструкцию долбить:
a := 0;
for i := 1 to i+1 do
begin
read(c)
if (c = ',') or (c = ' ') then break;
if ord(c) = 13 then exit; { в дельфе проверил, оно на ввод 13 даёт. ещё нюанс, что использование exit предполагает то, что это всё - в функции/процедуре ввода, иначе по-другому нужно будет как-нибудь выходить}
a := a*10 + (ord(c)-ord('0'));
end;