Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 144
от 11.12.2002, 18:10

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 431
Отправлено ответов: 950
Активность: 220.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

baldr
Статус: Профессиональный
Общий рейтинг: 114.51
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Andrew Vext
Статус: Доверительный
Общий рейтинг: 108.67
[Подробней >>]
Dzik
Статус: Профессиональный
Общий рейтинг: 114.97
URL: Разработка игрушек
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 143.47
[Подробней >>]
Avl2k
Статус: Доверительный
Общий рейтинг: 127.09
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 415. Всем привет! Вопрос такой Есть прога.. и в ней одна процедура делает одну баальшую пакость.. без нее... (ответов: 1)
Вопрос № 416. Здравия желаю, товарищи эксперты! Меркантильный вопрос: нет ли у кого из вас наработок(типа библиоте... (ответов: 1)
Вопрос № 418. Est li sposob programno opredelit videlena li pamyat dinamicheski, k primeru tak; Nadiozhna li takay... (ответов: 4)

Вопросов: 3, ответов: 6


 Вопрос № 415

Всем привет!
Вопрос такой
Есть прога.. и в ней одна процедура делает одну баальшую пакость.. без нее прога идет..
с ней - 6 ошибок выдает..
прога черезстрочно соединяет два файла.. процедура ставит в начала каждой строки результирующего файла ставит самое большое слово этой строки.
И, чур, не шутить про морских свинок и девушек-программистов =)
(:ЭланорII:)


Приложение:


Вопрос отправлен: 07.12.2002, 18:10
Отправитель: Эланор (cymoril@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает baldr

Приветствую Вас, Эланор!
Придется пошутить про морских девушек и свинок-программисток... :)))
Во-первых, я не понял зачем при считывании имени файла введенное имя опять выводится на экран.
Далее - при открытии файла надо указать еще и способ открытия. Вот, например:
f1.open("asdf", ios::in); //открываем файл asdf для чтения
f2.open("qwer", ios::out); //открываем файл qwer для записи

Если этого не делать, то - ... Лучше это сделать. Не помешает.
[Вот сейчас посмотрел внимательней, и заметил, что это однонаправленные файловые потоки, так что сорри...
Но я предпочитаю fstream, в котором можно указать тип доступа явно.]
Когда пишешь while(p), где p - это у тебя указатель, то p будет равен NULL ТОЛЬКО в
том случае, если str==NULL! А проверять на конец строки надо так: while (*p!=NULL).
А вот такую конструкцию я просто не понял: *pw++=*p; . Может, оно и правильно, только
смысл от меня далеко и я не понял что это такое... Лучше разбить на отдельные действия. Тогда и
ты поймешь. :) Причем, помни о приоритете операций!
Выполнять delete str; нельзя ни в коем случае! Потому что в качестве параметра
может быть передана и просто строка и результат такой фигни понять тоже сложно... Заведи себе
новый указатель!
В строке if (argc<4) итд - вообще полный финиш! Ты создаешь для каждого указателя 1 БАЙТ!
А удалять их Пушкин будет? :) Причем, эти указатели нельзя так использовать, потому как по условию
число параметов меньше 4, и поэтому этих указателей вроде как и не существует! Опят совет - заведи
нормальные указатели или вообще строки.
Вообще, небольшая путаница с именами параметров. Это не ошибка, а так, замечание...
обычно первый параметр обозначают argc, то есть arguments counter, а второй - *argv[], то есть
arguments variables. Может, ты что-то другое имела в виду? :)
Строка while (!open_fls(...)) - это вообще верх садизма! :))) Я просто переведу
на нормальный язык: "Пока файлы не открываются, ЗАКРЫВАЙ ИХ!!!" :-)))) Бедная DOS не ожидает такой
подлости и понимает все буквально... Проверку надо делать после попытки открытия каждого файла,
и там уже закрывать все открытые предыдущие в случае ошибки.
А что за странная функция insert_big_word, которую ты вызываешь с тремя параметрами, когда она
описана только с одним?
К слову, там что-то странно длинный комментарий - ты забыла закрыть его где-то??
Короче говоря... Я бы на твоем месте просто взял и переписал все заново, но четко понимая - где
и что именно выполняется. Не падай духом - такие ошибки были у всех.


Ответ отправлен: 08.12.2002, 00:30
Отправитель: baldr


 Вопрос № 416

Здравия желаю, товарищи эксперты!
Меркантильный вопрос: нет ли у кого из вас наработок(типа библиотек) для работы с DirectDraw и Direct3D в Visual C++ 6.0? А то и блин книжка есть("Программирование трёхмерной графики в Win95", а компакт, который должен был прилагаться, естественно отсутствует. В общем, буду благодарен. Мыло моё koolkhel@mail.ru, ссылки на сайты лучше не давать. Bye.



Вопрос отправлен: 07.12.2002, 22:44
Отправитель: Bitterman (koolkhel@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Andrew Vext

Добрый день, Bitterman!
Вы хочете файлов? Их есть у меня! netlib@mail.ru
Вообще-то для изучения DirectDraw и Direct3D лучше взять книги Стена Трухильо - "Программирование графики с использованием Direct3D" и "Быстродействующая графика для Windows средствами DirectDraw" Томпсон в книге описываент не DirectX, а свою библиотеку.

Ответ отправлен: 09.12.2002, 12:21
Отправитель: Andrew Vext


 Вопрос № 418

Est li sposob programno opredelit videlena li pamyat dinamicheski, k primeru tak;
Nadiozhna li takaya proverka?
pozhaluysta esli mozhno otvetit mne na e-mail: felistovichs@rambler.ru


Приложение:


Вопрос отправлен: 08.12.2002, 17:28
Отправитель: Sasha (felistovichs@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dzik

Здравствуйте, Sasha!
Если это под дос, то если память не выделена возвращается NULL.
А в VC выкидывается исключение.


Ответ отправлен: 08.12.2002, 18:00
Отправитель: Dzik


Отвечает baldr

Приветствую Вас, Sasha!
Я Вообще что-то не понял - что такое ты написал в приложении.. Вероятно, ты сравниваешь сегмент
полученной памяти с чем-то еще?? :-//
В общем, я делаю так... При создании указателя присваиваю ему сразу же NULL. И при удалении
выделенной памяти (даже в деструкторах классов!) тоже присваиваю NULL. А затем просто в любом
месте программы смотришь - если указатель равен NULL - значит память не выделена.


Ответ отправлен: 09.12.2002, 00:04
Отправитель: baldr


Отвечает Jadd

Приветствую Вас, Sasha!
Нет, конечно, так не надо проверять. Лучше включить этот блок в блок try и, если возникнут траблы выделением памяти, то возникнет исключение. Но память для процесса выделяется достаточно, чтобы ее нехватило на строку из 10-ти символов.

Ответ отправлен: 09.12.2002, 02:40
Отправитель: Jadd


Отвечает Avl2k

Доброе время суток, Sasha!
По умолчанию (если не установлен свой обработчик)operator new возвращает NULL, если выделение памяти не прошло. Поэтому можно не мудрить, а просто проверить возвращаемое значение на 0 - переносимо и абсолютно надежно.
С уважением, Avl2k.

Ответ отправлен: 09.12.2002, 13:53
Отправитель: Avl2k



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (29)
Perl (6)
Delphi (22)
Pascal (24)
Basic / VBA (9)
Java / JavaScript (10)
PHP (5)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (22)
"Железо" (30)
Поиск информации (13)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (15)
Юристу
Гражданское право (10)
Семейное право (3)
Трудовое право (6)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное