История изменений
Исправление bormant, (текущая версия) :
В чём может быть причина ошибки?
Стандартное поведение Read(строковая_переменная) не такое, как вы о нем думаете.
Этот оператор прочитает в строковую переменную из потока ввода столько символов, сколько влезает в память, отведенную под эту переменную, но не дальше, чем до конца строки (EoLn) в потоке ввода. Конец строки такой оператор преодолеть не сможет, пока не будет вызван ReadLn. В псевдокоде это может выглядеть так:
s:=''; Cnt:=SizeOf(s)-1;
while (Cnt>0) and not EoLn do begin
Read(c); s:=s+c;
end;
(приложение Pascal N-IDE), работает корректно
Нет. Оно работает по каким-то одному ему известным правилам, которые к правилам Паскаля не имеют никакого отношения.
Как исправить, выше уже написали:
program Example;
var
s1, s2: String;
begin
WriteLn('Enter the first string');
ReadLn(s1);
WriteLn('Enter the second string');
ReadLn(s2);
WriteLn(s1);
WriteLn(s2);
end.
PS. Заходите на огонёк ;)
https://www.cyberforum.ru/pascal/
Исправление bormant, :
В чём может быть причина ошибки?
Стандартное поведение Read(строковая_переменная) не такое, как вы о нем думаете.
Этот оператор прочитает в строковую переменную из потока ввода столько символов, сколько влезает в память, отведенную под эту переменную, но не дальше, чем до конца строки (EoLn) в потоке ввода. Конец строки такой оператор преодолеть не сможет, пока не будет вызван ReadLn. В псевдокоде это может выглядеть так:
s:=''; Cnt:=SizeOf(s)-1;
while (Cnt>0) and not EoLn do begin
Read(c); s:=s+c;
end;
(приложение Pascal N-IDE), работает корректно
Нет. Оно работает по каким-то одному ему известным правилам, которые к правилам Паскаля не имеют никакого отношения.
Как исправить, выше уже написали:
program Example;
var
s1, s2: String;
begin
WriteLn('Enter the first string');
ReadLn(s1);
WriteLn('Enter the second string');
ReadLn(s2);
WriteLn(s1);
WriteLn(s2);
end.
Исправление bormant, :
В чём может быть причина ошибки?
Стандартное поведение Read(строковая_переменная) не такое, как вы о нем думаете.
Этот оператор прочитает в строковую переменную из потока ввода столько символов, сколько влезает в память, отведенную под эту переменную, но не дальше, чем до конца строки (EoLn) в потоке ввода. Конец строки такой оператор преодолеть не сможет, пока не будет вызван ReadLn. В псевдокоде это может выглядеть так:
s:=''; Cnt:=SizeOf(s)-1;
while (Cnt>0) and not EoLn do begin
Read(c); s:=s+c;
end;
(приложение Pascal N-IDE), работает корректно
Нет. Оно работает по каким-то одному ему известным правилам, которые к правилам Паскаля не имеют никакого отношения.
Как исправить, выше уже написали:
program Example;
var
s1, s2: String;
begin
WriteLn('Enter the first string');
ReadLn(s1);
WriteLn('Enter the second string');
ReadLn(s2);
WriteLn(s1);
WriteLn(s2)
end.
Исходная версия bormant, :
В чём может быть причина ошибки?
Стандартное поведение Read(строковая_переменная) не такое, как вы о нем думаете.
Этот оператор прочитает в строковую переменную из потока ввода столько символов, сколько влезает в память, отведенную под эту переменную, но не дальше, чем до конца строки (EoLn) в потоке ввода. Конец строки такой оператор преодолеть не сможет, пока не будет вызван ReadLn. В псевдокоде это может выглядеть так:
s:=''; Cnt:=SizeOf(s)-1;
while (Cnt>0) and not EoLn do begin
Read(c); s:=s+c;
end;
(приложение Pascal N-IDE), работает корректно
Нет. Оно работает по каким-то одному ему известным правилам, которые к правилам Паскаля не имеют никакого отношения.