Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 201, средняя оценка - 4.78
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
#1

Что такое возврат каретки? - C++

03.10.2009, 22:24. Просмотров 29176. Ответов 6
Метки нет (Все метки)

\r - что делает этот управляющий символ, и чем он отличается от \n?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 22:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что такое возврат каретки? (C++):

Возврат каретки консоли! - C++
Доброе время суток! Вопрос который мне не дает покоя уже 2й месяц! И так у нас есть управляющие символы: - \n (новая строка) -...

Вывод в консоль и возврат каретки - C++
Вывожу в цикле в консольное приложение по ходу обработки данных массива: cout << "Обработано строк:" << i << "\r"; При таком выводе...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

6
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.10.2009, 22:40 #2
оба ведут свою историю от телетайпных аппаратов. \r - carriage return. означает возврат каретки \n - new line - перевод строки. сегодня "стандарт windows" использует последовательность \r\n в качестве "новая строка". "юникс-стандарт" - только \n
1
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
03.10.2009, 22:45  [ТС] #3
Ну если его напечатать в строке, то ничего такого на вид он не делает. Все же, что конкретно делает это символ?
0
Alexiski
Любитель давать советы
340 / 132 / 2
Регистрация: 12.01.2009
Сообщений: 511
03.10.2009, 22:55 #4
Грубо говоря, предполагалось, что \r обнулит номер символа. оставляя неизменным номер строки (т.е. сдвинет каретку пишущей машинки к началу строки, не трогая бумагу), а \n - наоборот, сделает переход к следующей строке, оставляя текущую позицию печати неизменной (прокрутит бумагу, не трогая каретку).

Именно так, кстати, ведут себя эти символы при "телетайпном" выводе функциями MS DOS.
4
rar14
28 / 22 / 1
Регистрация: 14.04.2009
Сообщений: 448
03.10.2009, 22:59  [ТС] #5
Хм. А чем с практической точки зрения различаются - \r\n и \n в Виндузе?
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
04.10.2009, 07:42 #6
блокнот умеет читать только \r\n
когда виндовс делали, многие системы юзали \n для перевода, а другие \r, поэтому, может и началось это всё с доса, виндовс включает оба вида

пример

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
main()
{
    printf("x\r");
    printf("yy\r");
    printf("z\r");
    putchar('\n');
    return 0;
}
остаётся zy
0
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298
04.10.2009, 12:01 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Покажу на MS-DOS.

Если все время в конце строки будет возврат каретки,то будет каждый раз затираться надпись,т.е. она сдвинется к началу строки:
Hello,world!*
Курсор стоит на позиции *.
Когда будет возврат каретки, то курсор сдвинется на начало строки:
*Hello,world!
И тогда каждый раз одно и тоже слово будет затираться,а наглядно мы результат не увидим.
А если мы будем выводить с переводом строки, то позиция курсора останется на месте,только сменится номер строки:
(см рисунок вложенный)
Чтобы сделать перейти на новую строку и поместить курсор в начало,то нужно выводить полсе слова сначала возврат каретки,а потом перевод строки:
Тогда все будет приятно выглядеть.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
code_seg segment
        ASSUME  CS:code_seg,DS:code_seg,ES:code_seg
    org 100h
start:
 
 call PRINT      
 call PRINT 
 call PRINT
 call PRINT
 int 20h
  
  
  
msg2        DB  'Hello,world!',13,10,'$'
;============================================================================
PRINT       PROC NEAR
    MOV AH,09H
    mov DX,offset msg2 
    INT 21H
    RET
PRINT       ENDP
;;============================================================================
code_seg ends
         end start
Hello,world!
Hello,world!
Hello,world!
5
Миниатюры
Что такое возврат каретки?  
04.10.2009, 12:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2009, 12:01
Привет! Вот еще темы с ответами:

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Что такое перегрузка оператора? Что у меня в коде за ошибка? - C++
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass: недопустимое использование этого типа в качестве выражения ...

В этой части кода происходит объявление функций? Что такое void? Что в скобках? - C++
В этой части кода происходит объявление функций? Что такое void? Что в скобках? void get(float **mas, int N, int M); void...

Что такое #, include, что это означает - C++
______


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.