Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что со строкой ? 
:(
    Опции темы
bellka
Дата 23.6.2004, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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;
При выводе в файл прямоугольники,что с кодировкой???Или с чем?sad.gif
PM MAIL ICQ   Вверх
Олег М
Дата 23.6.2004, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Надо объявить строку вот так:
TCHAR Title[256];
И всё будет нормально
Добавлено @ 05:13
Извини, не разглядел. Показалось что ты читаешь из файла.
PM MAIL ICQ   Вверх
Олег М
Дата 23.6.2004, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



А что за прямоугольники. Вроде латинские буквы всегда нормально выводятся. И твой пример нормально работает. Может проблема в просмотрщике?
PM MAIL ICQ   Вверх
shedon
Дата 23.6.2004, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Цитата
Надо объявить строку вот так:
TCHAR Title[256];
И всё будет нормально

А какая разница ?
Добавлено @ 08:43
bellka
Сейчас проверил твой код всё работает правильно.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
AndyY
Дата 23.6.2004, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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 - это указатель на мусорный кусок памяти.



--------------------
PM MAIL WWW   Вверх
shedon
Дата 23.6.2004, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Цитата
отсюда берется 0 символ в текстовом файле .

Это что то новенькое... Из чего это следует ?
Я же говорю, что всё прекрасно работает!


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Конструктор
Дата 23.6.2004, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 12.5.2004
Где: Москва

Репутация: нет
Всего: 10



Ну ведь пишется же в файл строка "<!--start_bwc-->\0" вот 0 и берется. sizeof же не будет длину строки считать, он возьмет размер массива, а NULL-терминатор туда входит.

PM MAIL WWW ICQ   Вверх
bel_nikita
  Дата 23.6.2004, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
Я же говорю, что всё прекрасно работает!
не правда, надо внимательнее быть wink.gif
А нах тут sizeof ?
Тута strlen надо бы biggrin.gif
Цитата
i = fwrite(Title,strlen(Title),1,stream);



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
shedon
Дата 23.6.2004, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Цитата
не правда, надо внимательнее быть 

Тебе бинарник прислать ?



--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
bel_nikita
  Дата 23.6.2004, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



to shedon
Цитата
Тебе бинарник прислать ?
Ага, присылай. Интересно посмотреть. biggrin.gif
И все-таки надо внимательнее быть biggrin.gif
Цитата
printf("\nsizeof(Title)=%d",sizeof(Title)); // =17 !!!!!!!!!!!!!!!!!!!!!!!!!!!!
printf("\nstrlen(Title)=%d",strlen(Title)); // =16!!!!!!!!!!!!!!!!!!!!!!
Вот теперь возьми и подсчитай, сколько символов в строке "<!--start_bwc-->" и сколько символов пишется в файл. И не надо будет бинарники высылать.
Ладно, пойду уже по полной:
Цитата
Это что то новенькое... Из чего это следует ?
Это не новенькое, а хорошо забытое старое biggrin.gif
Есть такая штука как C-строка. Ты разницу понимаешь между "A" и 'A'. Так, вот пример, чтоб было понятно:
Цитата
  printf("\nsizeof(A)=%d",sizeof("A")); // =2
  printf("\nsizeof(A)=%d",sizeof('A')); // =1

Теперь подумай: стоит ли бинарник высылать, аль не стоит tounge.gif . Зачем спорить не разобравшись???? Просто нет слов mad.gif

З.Ы.: Без обид wink.gif За "тыкание" тоже, все же я страше wink.gif Что-то ты разгорячил меня.


Это сообщение отредактировал(а) bel_nikita - 23.6.2004, 22:03


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
shedon
Дата 23.6.2004, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



из сообщений bellka я понял, что у неё вся строка не выводится, вот и писал, что она выводится, только с нулём на конце, а из сообщения AndyY мне показалось, что у него в файл пишется 0 символов wow.gif. Что ты написал я знаю, просто заглючило меня. smile.gif


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
bellka
Дата 24.6.2004, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.6.2004

Репутация: нет
Всего: нет



smile.gifСейчас всё заработало!
Но дело такое- если я указываю ровно количество символов в массиве Title(оно указывается в классе,которому массив принадлежит),то в файл записывает
правильно,а если больше-эту же ерунду,могет кто знает отчего,интересно......)))))))))
И всем пасибо !!!
P.S.ту bel_nikita РАЗНИЦЫ НЕ ВИЖУsad.gif
ТУ shedon не он,о онаsmile.gif)))))))))))

PM MAIL ICQ   Вверх
shedon
Дата 24.6.2004, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Цитата
ТУ shedon не он,о она)))))))))))

Исправил smile.gif
Добавлено @ 07:18
Цитата
P.S.ту bel_nikita РАЗНИЦЫ НЕ ВИЖУ

В чём ?
в различи между "A" и 'A' ?
В первом случем это массив из двух символов, первый А, второй '\0'- так называемый конец строки.
А во втором случае это просто один символ


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
bel_nikita
  Дата 24.6.2004, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
P.S.ту bel_nikita РАЗНИЦЫ НЕ ВИЖУ
еще один mad.gif bellka почитайте пожалуйста внимательнее.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
bellka
Дата 24.6.2004, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.6.2004

Репутация: нет
Всего: нет



Цитата
еще один  bellka почитайте пожалуйста внимательнее.


Почиталаsmile.gif
sizeof даёт размер в байтах,вроде fwrite это и нужно))))Всегда так указывала и работало,главное(((((

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0965 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.