Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
как должен работать возврат каретки? например в винде сишный код printf("hello\rddd"); печатает ddd а скриптовые - perl,tcl,python,gawk печатают dddlo казалось бы - скрипты работают логично а C затирает предыдущий вывод как объяснить сей эФФект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 11:04 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
интересно - в C все работает нормально если в конце строки есть \n похоже поэтому и интерпреатторы нормально - по умолчанию они завершают строку а если в perl не писать \n то тоже символы стирает. В чем причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 11:12 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
терминал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 11:16 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
Возьми другой С. Если у тебя "hello\rddd" возвращает один только "ddd", то у тебя кривой C-компилятор и кривые библиотеки к нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 18:30 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
White Owl ты не прав во-первых - я пробовал на разных компиляторах и в разных ОС. А во-вторых - это действительно терминал: если перенаправить hello\rddd в файл : ./a.out > file.txt то в файле будет dddlo если просматривать скажем редактором vi а если сделать cat file.txt - то будет именно ddd В файле - порядок следовательно, проблема не в C или его либах, а в настройках терминала и особенностях вывода (в частности, stdio printf, или cat) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 22:34 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
CrLFWhite Owl ты не правЯ прав :) Просто я никак не мог предположить, что человек берется изучать служебные символы на ненастроенном компе. CrLFто в файле будет dddlo если просматривать скажем редактором vi а если сделать cat file.txt - то будет именно dddУгу... при этом не надо забывать что vi самостоятельно обрабатывает служебные символы, а cat отдает все символы из файла как поток на обработку getty или что там у тебя стоит в качестве драйвера консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 22:57 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
авторЯ прав :) Просто я никак не мог предположить, что человек берется изучать служебные символы на ненастроенном компе. в топике собственно указывалось, что начальные эксперименты проводились в винде. Не помню, чтобы cmd.exe надо было как-то правильно настраивать :-) Хотя готов послушать - какой же в винде должен быть $TERM и как работать в винде с termcap :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 23:10 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
особенно после того, как я же и написал, что проблема в терминале :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 23:11 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
да кстати интересно - запустил сейчас дома в XP - выводит dddlo, то есть все нормально просто командные интерпретаторы отличаются в работе ввода-вывода у W2k и XP значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 23:16 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
В каком месте говорилось про винды простите? Вот использование типичных юниксовых вещей вижу, ни одного указания на винды не вижу. На W2K команда printf("12345\r678") печатает 67845. Проверено на BCC 5.5, VC6, VC 2003. Все делали Win32 Console Application. Какой компилятор ты использовал? MinGW под Cygwin'ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 23:33 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
вот моя цитата CrLFнапример в винде сишный код printf("hello\rddd"); печатает ddd вообще я пробовал в винде через gcc и Visual C++ 5.0 Как Win32, конечно. а сейчас ваще шизую. С XP посмотри: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. такой код у них печатает вообще "dddаo" но "а" при этом совсем не "а" :-) что видно в файлике. Кракозябра там как надо. Просто у них так преобразует. С мастдаей все ясно. А кстати как надо похимичить с unix чтоб printf("hello\rddd") вывелся не удаляя символы? Я поигрался - терминалы разные пробовал, но не помогает. Замутить с termcap что-то? Как настроить? Все остальнгл работает нормально (текстовые проги, vi и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 23:40 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
CrLFа сейчас ваще шизую. С XPДействительно шизуешь. Посмотри внимательнее на свое условие цикла. Ты пытаешься печать не только строку, но и нулевой символ ограничивающий строку. Естественно что там у тебя появляются кракозябры. Посмотри в своем шрифте что стоит на месте нулевого символа и увидишь свою кракозябру. CrLFС мастдаей все ясно.Да, да... конечно. Именно мастдай виноват в том, что ты не умеешь со строками работать. CrLFА кстати как надо похимичить с unix чтоб printf("hello\rddd") вывелся не удаляя символы? Не знаю. У меня \r перебрасывает курсор на начало строки ничего не затирая... На всех доступных мне ОС и консолях :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 18:24 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
Ну что вы в самом деле, как не знаю кто! Просто там приглашение командной строки печатается сразу после ddd. Это приглашение и затирает lo. Затирает интерпретатор команд, а не терминал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 18:59 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
DarkSquidНу что вы в самом деле, как не знаю кто! Просто там приглашение командной строки печатается сразу после ddd. Это приглашение и затирает lo. Затирает интерпретатор команд, а не терминал.В виндах? Тамошний интерпретатор автоматически делает \r\n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 19:07 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
Так с третьего поста ясно, что не винды. А в XP - нормально dddаo печатает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 21:10 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
White Owl да, со строкой я маху дал. все нормально если i<=strlen(s) и все-таки printf("hello\rddd"); в W2k на VC 5.0 работает криво. и еще - ты не знаешь как все-таки настроить терминал в юнихе чтобы правильно работало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 22:39 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
export PS1="\n$PS1" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 00:10 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
CrLFи все-таки printf("hello\rddd"); в W2k на VC 5.0 работает криво.Вот мы наконец и пришли к тому с чего начинали :) "у тебя кривой C-компилятор и кривые библиотеки к нему." CrLFи еще - ты не знаешь как все-таки настроить терминал в юнихе чтобы правильно работало?Знаю. Но я не знаю какой юникс у тебя и какой у твоего юникса терминал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 00:15 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
автор"у тебя кривой C-компилятор и кривые библиотеки к нему." не хочу быть назойливым, но в XP тот же компилятор - и все хорошо. а по поводу unix - ты просто запость свой termcap и терминал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 00:54 |
|
||
|
вопрос по возврату каретки
|
|||
|---|---|---|---|
|
#18+
пять же - gcc так же работал, так что на компилятор как-то трудно свалить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 00:56 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33547804&tid=1347075]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 516ms |

| 0 / 0 |
