Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2015, 19:51   #1
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию отличие /n и endl

Чем отличается /n и endl? И то и другое, переносит курсор на следующую строку, так? Тогда в чем разница этих команд? Есть ли случаи, в которых лучше использовать ту или иную команду?
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 15.06.2015, 20:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

На сколько я понимаю в разных ОС перенос строки разный. endl, думаю, под разные операционки тоже будет подстраиваться в отличии от \n
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 20:26   #3
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

спасибо, доступно. /n - быстрее писать получается, экономия времени))

Цитата:
Сообщение от Stilet Посмотреть сообщение
На сколько я понимаю в разных ОС перенос строки разный. endl, думаю, под разные операционки тоже будет подстраиваться в отличии от \n
на личные сообщения смысла отвечать нет, я правильно понял?
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 16.06.2015, 23:19   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от WildWhiteRabbit Посмотреть сообщение
Чем отличается /n и endl? И то и другое, переносит курсор на следующую строку, так? Тогда в чем разница этих команд? Есть ли случаи, в которых лучше использовать ту или иную команду?
\n - это так называемая "ескейп последовательность".
повстречав этот символ терминал переведет каретку на строчку вниз,
и влево.

то бишь на начало новой строки.

endl - шаблон функции-манипулятора.

принципиальное различие в том,
что данный манипулятор не только сдвинет каретку на новую строку,
но и зафлюшит буфер стандартного потока вывода.

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

символ '\n' лишь ещё один символ, который уйдёт в поток.
но не факт, что оттуда сразу на терминал.

endl - перевод строки, плюс все содержимое буфера сразу уйдет на терминал.

Цитата:
Сообщение от Stilet Посмотреть сообщение
На сколько я понимаю в разных ОС перенос строки разный. endl, думаю, под разные операционки тоже будет подстраиваться в отличии от \n
не правильно понимаете.

на разных ос действительно разные ейскейп последовательности для перевода строки.

однако '\n' - это стандарт. считай что кроссплатформа.

подстроится под целевую платформу - это проблема стандартной библиотеки на этой конкретной целевой платформе.

для пользователей это прозрачно.
можно писать '\n' и не заморачиваться,
во что он там в конечном счете трансформируется на конкретной платформе.

Последний раз редактировалось Stilet; 17.06.2015 в 07:01.
_Bers вне форума Ответить с цитированием
Старый 17.06.2015, 03:54   #5
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
\n - это так называемая "ескейп последовательность".
повстречав этот символ терминал переведет каретку на строчку вниз,
и влево.

то бишь на начало новой строки.

endl - шаблон функции-манипулятора.

принципиальное различие в том,
что данный манипулятор не только сдвинет каретку на новую строку,
но и зафлюшит буфер стандартного потока вывода.

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

символ '\n' лишь ещё один символ, который уйдёт в поток.
но не факт, что оттуда сразу на терминал.

endl - перевод строки, плюс все содержимое буфера сразу уйдет на терминал.
о_О а что такое терминал - это специальное ПО на компьютере связанное с компиляцией или обработкой С++ или это железка/микросхема/плата в компьютере?
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 17.06.2015, 07:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а что такое терминал
Терминал это консоль. Если говорить по простому. Универсально - терминал, это любое ПО, принимающее информацию по стандартным потокам ввода\вывода.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2015, 18:58   #7
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Терминал это консоль. Если говорить по простому. Универсально - терминал, это любое ПО, принимающее информацию по стандартным потокам ввода\вывода.
а информация со стандартных потоков ввода/вывода - это клавиатура, монитор, принтер и т.д. получается что и блокнот терминал и браузер, и еще много всякого ПО.... и все это терминалы?
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 17.06.2015, 19:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
получается что и блокнот терминал и браузер
Если бы блокнот умел выполнять команды ОС, то его можно было бы назвать терминалом. Терминал, это средство управления ЭВМ, а не средство набора текста.
Кстати, единственный редактор, который мне известен, способный выполнять функции ОС - Multi Editor. Других не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2015, 19:49   #9
WildWhiteRabbit
Форумчанин
 
Регистрация: 30.05.2015
Сообщений: 179
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если бы блокнот умел выполнять команды ОС, то его можно было бы назвать терминалом. Терминал, это средство управления ЭВМ, а не средство набора текста.
Кстати, единственный редактор, который мне известен, способный выполнять функции ОС - Multi Editor. Других не знаю.
ок. приведите свой пример. вот, powershell терминал?
Всегда задавайте вопросы, даже самому себе.
Боец на сцене, певец на арене
WildWhiteRabbit вне форума Ответить с цитированием
Старый 17.06.2015, 21:10   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

https://ru.wikipedia.org/wiki/%D0%9A...BD%D0%B0%D0%BB
https://ru.wikipedia.org/wiki/%D0%9A...BE%D0%BB%D1%8C
https://ru.wikipedia.org/wiki/TTY-%D...86%D0%B8%D1%8F
https://ru.wikipedia.org/wiki/%D0%A2...B2%D0%B5%D1%80
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cout<<"Помогите новичку 2"<<endl; elCamino Помощь студентам 0 02.11.2013 14:19
cout<<"Помогите новичку :)"<<endl; elCamino Помощь студентам 2 02.11.2013 06:29
Отличие lisenok-92 Visual C++ 3 23.05.2011 22:13
Отличие Jesus56 Паскаль, Turbo Pascal, PascalABC.NET 3 06.10.2010 17:19
Отличие си от си++ ???? Серй Лорд Софт 3 11.08.2008 09:26