Титла: Въпрос относно < CR > Публикувано от: Apache в Aug 30, 2005, 19:11 Здравейте !
Уча се да програмирам на C, та имам 1 въпрос. Въведената от клавиатурата информация се записва в буфер и се обработва последователно. Това въвеждане завършва задължително с < CR >, след което се активира входната функция. При обработката на информацията в буферът трябва да се има в предвид и въведеният < CR > . Затова в програмата чрез функцията getchar на помощна променлива се присвоява ненужния < CR > и се изчиства буферът от него. Това беше извадка от 1 учебник. До колкото разбрах всеки път когато използвам scanf или getchar ( извън цикъл ) след тях трябва да изчиствам този символ от буфера.Както и да е, въпросът ми е, какво по-точно представлява този < CR > и по-важното - какво ще стане ако не го изчиствам ? И ако програмата не тръгва, то защо ? Мерси предварително. Титла: Въпрос относно < CR > Публикувано от: romeo_ninov в Aug 30, 2005, 20:36 Знак за край на ред :-D
Титла: Въпрос относно < CR > Публикувано от: luda_glawa в Aug 30, 2005, 21:12 <CR> - carriage return - връща каретката (курсора) в началото на реда.
А най-точно е обяснено тук: Wikipedia Между другото обърни внимание и на <LF> - line feed. Обикновенно двете се използват заедно - <CR><LF>. Титла: Въпрос относно < CR > Публикувано от: romeo_ninov в Aug 30, 2005, 21:35
Това е вярно само за Windows :-P A <LF> означава превъртане на валяка с един ред. И двата термина водят началото си от телетипите, които са били първите терминали :-) Титла: Въпрос относно < CR > Публикувано от: luda_glawa в Aug 30, 2005, 21:52 Защо само за Уиндоус?
Титла: Въпрос относно < CR > Публикувано от: romeo_ninov в Aug 31, 2005, 10:21
Ами като гледам текстовите файлове под UNIX (Linux) имат само LF за нов ред: Титла: Въпрос относно < CR > Публикувано от: astronom в Aug 31, 2005, 11:01
Защото така са решили проектантите на съответната операционна система. Иначе в Линукс използването само на LF е наследство от UNIX, който пък го наследява от Multics. Apple пък използва само CR в тяхната операционна система до версия 9, след това и те използват само LF. В Windows пък е комбинация от двете (съответно наследство от DOS). За други платформи може да се използват съвсем различни контролни символи. Ето и какво има в Wikipedia по въпроса - CRLF. |