![]() |
Модераторы: 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 |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |