![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| bellka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 21.6.2004 Репутация: нет Всего: нет |
Народ,подскажите плс:
TCHAR Title[]= "<!--start_bwc-->"; FILE* stream; int i; stream = fopen(File_name,"w"); i = fwrite(Title,sizeof(Title),1,stream); fclose(stream); return stream; При выводе в файл прямоугольники,что с кодировкой???Или с чем? |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Надо объявить строку вот так:
TCHAR Title[256]; И всё будет нормально Добавлено @ 05:13 Извини, не разглядел. Показалось что ты читаешь из файла. |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
А что за прямоугольники. Вроде латинские буквы всегда нормально выводятся. И твой пример нормально работает. Может проблема в просмотрщике?
|
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
А какая разница ? Добавлено @ 08:43 bellka Сейчас проверил твой код всё работает правильно. -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
не нравятся в коде 2 момента:
i = fwrite(Title,sizeof(Title),1,stream); у тебя Title[sizeof( Title )-1] всегда = 0, отсюда берется 0 символ в текстовом файле (кое-кем может показаться как прямоугольник). fclose(stream); return stream; не вижу смысл возвращать закрытый stream - это указатель на мусорный кусок памяти. |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Это что то новенькое... Из чего это следует ? Я же говорю, что всё прекрасно работает! -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
Ну ведь пишется же в файл строка "<!--start_bwc-->\0" вот 0 и берется. sizeof же не будет длину строки считать, он возьмет размер массива, а NULL-терминатор туда входит.
|
|||
|
||||
| bel_nikita |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
А нах тут sizeof ? Тута strlen надо бы
|
||||
|
|||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Тебе бинарник прислать ? -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| bel_nikita |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
to shedon
И все-таки надо внимательнее быть
Ладно, пойду уже по полной:
Есть такая штука как C-строка. Ты разницу понимаешь между "A" и 'A'. Так, вот пример, чтоб было понятно:
Теперь подумай: стоит ли бинарник высылать, аль не стоит З.Ы.: Без обид Это сообщение отредактировал(а) bel_nikita - 23.6.2004, 22:03 |
||||||||
|
|||||||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
из сообщений bellka я понял, что у неё вся строка не выводится, вот и писал, что она выводится, только с нулём на конце, а из сообщения AndyY мне показалось, что у него в файл пишется 0 символов
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| bellka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 21.6.2004 Репутация: нет Всего: нет |
Но дело такое- если я указываю ровно количество символов в массиве Title(оно указывается в классе,которому массив принадлежит),то в файл записывает правильно,а если больше-эту же ерунду,могет кто знает отчего,интересно......))))))))) И всем пасибо !!! P.S.ту bel_nikita РАЗНИЦЫ НЕ ВИЖУ ТУ shedon не он,о она |
|||
|
||||
| shedon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Исправил Добавлено @ 07:18
В чём ? в различи между "A" и 'A' ? В первом случем это массив из двух символов, первый А, второй '\0'- так называемый конец строки. А во втором случае это просто один символ -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
||||
|
|||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
|
|||
|
||||
| bellka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 21.6.2004 Репутация: нет Всего: нет |
Почитала sizeof даёт размер в байтах,вроде fwrite это и нужно))))Всегда так указывала и работало,главное((((( |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |