0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
1

ENTER переводит на новую строку только при двойном нажатии в консоле

03.02.2017, 22:09. Показов 3620. Ответов 11
Метки нет (Все метки)

ENTER переводит на новую строку только при двойном нажатии в консоле, но это если написать такой код
Pascal
1
2
3
4
5
var n:longword;
begin
readln(n);
writeln(4*n);
end.
Если изменить так, то один раз нужно нажать
Pascal
1
2
3
4
5
var n:longword;
begin
read(n);
writeln(4*n);
end.
Может я ошибаюсь, но по идее отличие этих процедур в том, что read читает с нескольких строк, а readln только с одной, но то, что нужно вводить еще один enter... Спрашиваю, потому что раньше такого не было, может где-то в настройках что-то посмотреть?

Добавлено через 9 минут
А и еще:
Раньше я вводил тест в консоль, переводил на новую строку и ответ выводился в следующей строке, а сейчас в той же что и ввод
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2017, 22:09
Ответы с готовыми решениями:

Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а
Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а,...

Отмена перехода на следующую строку при нажатии Enter в DataGridView
Здравствуйте! При нажатии Enter в DataGridView происходит переход на следующую строку. Подскажите,...

Переход на следующую строку в той же колонке при нажатии Enter
Здравствуйте! Работаю с табличной часть, в которой несколько колонок. Необходимо редактировать...

Отменить переход на след строку в dataGridView при нажатии Enter
В общем суть в названии беседы. Нужно , чтобы при редактировании ячейки при нажатии Enter строка...

11
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7069 / 4196 / 2730
Регистрация: 22.11.2013
Сообщений: 12,026
Записей в блоге: 1
03.02.2017, 23:25 2
Вас непонятно. Попробуйте использовать короткие предложения для выражения мыслей. Если русский язык для вас неродной, попробуйте писать на английском, на этом форуме такое в пределах правил.

Добавлено через 9 минут
Разница Read и ReadLn только в том, что ReadLn это:
Pascal
1
2
3
  Read(...);
  while not EoLn do Read(dummy);
  Read(КонецСтроки);
Существенная разница в использовании Read и ReadLn имеется для строк (String или array of Char) -- при чтении строки Read никогда не перейдёт на следующую строку, без ReadLn этого не обойти. Однако, при чтении других типов данных подобное поведение отсутствует.

Добавлено через 5 минут
Похоже, что истинная причина "странного" поведения не попала в текст вашего сообщения, на самом деле причина в чем-то еще. Продолжайте наблюдение.
0
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
04.02.2017, 21:03  [ТС] 3
Может поможет картинка
ENTER переводит на новую строку только при двойном нажатии в консоле

Pascal
1
2
3
4
5
var a:string;i:integer;
begin
  read(a);
  writeln(length(a));
end.
Должно быть на экране
aaaaaaa
7
То-есть результат выводится поверх ввода
0
Почетный модератор
64254 / 47554 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
04.02.2017, 21:11 4
Цитата Сообщение от IlushaMax Посмотреть сообщение
Должно быть на экране
aaaaaaa
7
Pascal
1
2
3
4
5
6
var a:string;i:integer;
begin
  readln(a);
  writeln(length(a));
  readln;
end.
0
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
04.02.2017, 21:13  [ТС] 5
Ничего не изменилось, кроме того, что теперь нужно нажать на ENTER второй раз

То-есть результат выводится поверх ввода
0
Почетный модератор
64254 / 47554 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
04.02.2017, 21:19 6
А что нужно-то?
У меня так.
Миниатюры
ENTER переводит на новую строку только при двойном нажатии в консоле  
0
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
04.02.2017, 21:22  [ТС] 7
Вот так было и у меня до определенного момента. Может я что-то изменил в настройках...
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
07.02.2017, 12:40 8
Read читает до пробела в строке, то есть если в строке написано 12 13 14, он читает, ага 12, ага 13, ага 14 перейдет на строчку следующию.Readln прочитает всю строку не в число а в string : "12 13 14" запоминая пробелы. Вот
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7069 / 4196 / 2730
Регистрация: 22.11.2013
Сообщений: 12,026
Записей в блоге: 1
08.02.2017, 12:22 9
Цитата Сообщение от Luke0208 Посмотреть сообщение
Read читает до пробела в строке, то есть если в строке написано 12 13 14, он читает, ага 12, ага 13, ага 14 перейдет на строчку следующию.
Бред. Кроме случая Read(a); Read(a); Read(a); Read(a), где a -- числовая переменная.
Цитата Сообщение от Luke0208 Посмотреть сообщение
Readln прочитает всю строку не в число а в string : "12 13 14" запоминая пробелы. Вот
Бред, кроме случая ReadLn(a), где a -- строковая переменная.
0
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
08.02.2017, 13:42  [ТС] 10
Проблема не в том что я не понимаю что такое read и readln. Проблема вот в чем

То-есть результат выводится поверх ввода
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
08.02.2017, 14:20 11
Цитата Сообщение от bormant Посмотреть сообщение
Сообщение от Luke0208 Посмотреть сообщение
Read читает до пробела в строке, то есть если в строке написано 12 13 14, он читает, ага 12, ага 13, ага 14 перейдет на строчку следующию.
Бред. Кроме случая Read(a); Read(a); Read(a); Read(a), где a -- числовая переменная.
Цитата Сообщение от Luke0208 Посмотреть сообщение
Readln прочитает всю строку не в число а в string : "12 13 14" запоминая пробелы. Вот
Бред, кроме случая ReadLn(a), где a -- строковая переменная.
1. Это и имелось ввиду.2. Другие случаи не рассматривались, т.к программа крашнется.
0
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
08.02.2017, 20:36  [ТС] 12
Что имелось ввиду? Что это бред?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2017, 20:36
Помогаю со студенческими работами здесь

Не переводит на новую строку!
#include <stdio.h> #include <string.h> int main() { char a,b; //Длинные числа int...

Не переводит на новую строку
Почему сишная функция не хочет переводить текст на новую строку(\n)? szCALL MACRO sz CALL @F...

Функция переводит на новую строку
Наткнулся на функцию, которая отправляет сообщение пользователю с определенным именем (для чата на...

fprintf не переводит на новую строку
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|\n ",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1); не хочет переводить на новую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru