![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
всем привет. Есть простенькая програмка, которая записывает в файл один символ. например:
в файл 12-2 должен записаться байт 'Б', у меня вопрос: - В txt файл записывабтся байты в цифровом виде, а при открытии переводятся в ascii символы так? (т.е 'A' = 65 прибавляем 1 получаем 66 т.е B) только так это происходит? Это сообщение отредактировал(а) yngwie19 - 29.3.2009, 20:04 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
yngwie19, текстовый файл от нетекстового в DOS и Windows отличается только наличием преобразования '\r\n' в '\n' при чтении и '\n' -> '\r\n' при записи. В других ОС (*nix) вообще нет понятия "текстовый файл", так как отличий нет никаких.
Все файлы состоят из байтов. Один байт кодирует один символ в ASCII таблице. Программа просмотра при выводе подставляет графическое изображение символа, соответствующее коду. Тип char в Си/Си++ это такой целый знаковый тип, диапазон значений которого -128...+127. Фактически, он и является байтом. Функции вывода созданы так, чтобы выводить числа этого типа, как соответствующие им символы. |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
а почему если в файл записать строковый литерал, например: "простой текст", то при открытии мы увидми нечитаемые символы?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Действительно - почему? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Вроде все нормально
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Dem_max, да действительно. Скажи а почему ты указываешь кол-во записываемых байт как sizeof(szText)-1?s
sizeof() учититывает символ конца строки? |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
вроде учитывает, потому что выделается памяти n+1 для szText, если использовать lstrlen он выдаст размер n
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |