![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Бинарные файлы |
|
C/C++ - Бинарные файлы
|
Новый участник Сообщения: 21 |
Решено
|
|
Отправлено: 12:52, 20-04-2009 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата Admiral:
Кстати вместо назойливости я углядел желание докопаться до истины Цитата Admiral:
Цитата Admiral:
Цитата Admiral:
struct _runtime_info_entry {unsigned offset; unsigned size;}; struct data1 { char a[10], b[20], c[35]; static const _runtime_info_entry* info; } _runtime_info_entry* data1::info = {{0,10},{10,20},{30,35},{0,0}}; // вариант для C void load(void* data, const _runtime_info_entry* info) { for(; info->size!=0; ++info) { fread(reinterpret_cast<char*>(data) + info->offset, info->size, stdin); } } // вариант для C++, вообще сомнительный конечно, потому что не безопасный template<typename Struct1> void load(Struct1& data, filebuf& buf) { char* data_ptr = reinterpret_cast<char*>(&data); const _runtime_info_entry* info = Struct1::info; for(; info->size!=0; ++info) { fill(data_ptr + buf.sgetn(data_ptr + info->offset, info->size), data_ptr + info->size, ' '); } } |
||||
Отправлено: 08:41, 27-04-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать pva спасибо за комплимент.
Цитата pva:
#include <stdio.h> int main(int argc, char* argv[]) { int i=0; char HW [11+1]="Hello World"; while (HW[i]!='\0') { printf("%c",HW[i]); i++; } printf("%s",HW); return 0; } В программе посимвольно проверяются данные, с помощью sprintf не выходит их складывать в переменную-элемент структуры. Да и к тому же нужно нуль символ учитывать. Да, так оно и будет Excel-> TSV.txt -> Program.exe |
|
Последний раз редактировалось Admiral, 27-04-2009 в 20:34. Отправлено: 20:23, 27-04-2009 | #12 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата Admiral:
функции printf, scanf - для форматированного ввода-вывода функции fread, fwrite - для двоичного. Некорректно ожидать, что вывод в цикле символов без разделителей пробелами функцией printf будет на ура воспринят функцие scanf (которая, к примеру, пробелами проверяет ограницы полей ввода). Ещё пример несовпадения интерфейсов: Массив чисел в нотации pascal: (1, 2, 3, 4, 5) Массив чисел в нотации c/c++: {1, 2, 3, 4, 5} Строчка данных в файле csv: 1; 2; 3; 4; 5 Строчка данных, воспринимаемая кодом (числа, разделённые пробелами короче) copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter<int>(vector_of_int)) 1 2 3 4 5 |
|
Отправлено: 09:46, 28-04-2009 | #13 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата .::.DIMA.::.:
|
|
Отправлено: 06:44, 04-05-2009 | #14 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать они проверяют по сигнатурам, то есть есть шаблонные файлы типа регулярных выражений (regular expressions), которые выявляют наиболее характерные для вирусов в базе антивируса куски кода в экзешнике. А эвристический анализ разбирает исполняемый код и вычисляет вероятность того, что код может нанести компьютеру вред.
|
Отправлено: 07:19, 05-05-2009 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Не открываются текстовые файлы и изображения и к ним создались файлы с расшир. drweb | leda | Лечение систем от вредоносных программ | 1 | 03-10-2009 01:22 | |
[решено] Не удаляются неизвестные мне файлы fidbox.dat и fidbox.idx. Что это за файлы? | segafos | Лечение систем от вредоносных программ | 31 | 04-06-2009 17:17 | |
CMD/BAT - файлы вида mmdd*.* - для каждой даты нужно создать каталог, скопировать, файлы | milito | Скриптовые языки администрирования Windows | 2 | 24-05-2009 23:32 | |
Доступ - html-файлы грузятся как файлы для скачивания | Dr. MefistO | Microsoft Windows 2000/XP | 1 | 08-03-2009 10:06 | |
Файлы | Surround | Вебмастеру | 4 | 28-03-2003 08:35 |
|