Форум программистов, компьютерный форум CyberForum.ru

Исправить код (считать данные из файла) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ программа на нахождение суммы n червых членов последовательность фибоначи http://www.cyberforum.ru/cpp-beginners/thread434012.html
ребята помогите с Фибоначи задание найти сумму n первых членов Фибоначи.
C++ Не могу понять запись на с++ Не могу понять запись на с++ там какието проценты обьясните. http://www.cyberforum.ru/cpp-beginners/thread433999.html
C++ Оптимизация кода программы
Задача В качестве самостоятельного задания исследуйте предельные значения N! (1*2*3*..*n) для двух указанных типов (long int и unsigned long)переменной F. Моя реализация: #include <iostream.h> #include <conio.h> #include <limits.h> int main() { clrscr(); long int i,F,max; F=1; max=2147483647;i=1;
C++ Описание клавиатуры
описать принцип работы компьютера с клавиатурой; объяснить действие функций int86, outport, inport; принципы работы клавиш модификации кода; Можете помочь?
C++ Определить, попадает ли точка в закрашенные области с заданными параметрами. http://www.cyberforum.ru/cpp-beginners/thread433984.html
Привет всем. Ребят, очень нужна ваша помощь, немогу разобраться. Мой вариант 14. застрял на первом задание, нужно сделать все 3, но если поможете сделать хоть одно, буду крайне благодарен файлик прикрепил.
C++ Мьютекс в чем ошибка Пытаюсь разобраться с мьютексом. Первым делом пытаюсь определить копия запущена приложения или нет. Вот код. #include <windows.h> #include <iostream> using namespace std; HANDLE hMutex; int main( void ) подробнее

Показать сообщение отдельно
Dim22
0 / 0 / 0
Регистрация: 23.01.2012
Сообщений: 6
24.01.2012, 23:53  [ТС]     Исправить код (считать данные из файла)
Спасибо! Спасибо за примеры)
-=ЮрА=-, ваш код очень помог, с ним не было проблем)
Не думаю, что вам интересно, но вот конечный (и главное - рабочий)) результат.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <windows.h>
#include <iostream.h>
#define patch(a, v, s) _patch((void*)(a), (DWORD)(v), (s))
#define aGunflash 0x85A70C
 
BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID);
void _patch(void*,DWORD,DWORD);
void selectGunFlash(void);
long weapon;
char dynname[16];
typedef struct tag_info
{
    long id;
    char name[16];
}
info;
int i;
info list[50];
 
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
{
    if(reason==DLL_PROCESS_ATTACH)
    {
        patch(0x4A0F2E, 0xE9, 1);
        patch(0x4A0F2F, (DWORD)&selectGunFlash - 0x4A0F33, 4);
        FILE * f = fopen("info.dat", "r");
        i = 0;
        while(!feof(f))
        {
            if(fscanf(f,"%d%s",&list[i].id,list[i].name))
            i++;
        }
        fclose(f);
    }
    return TRUE;
}
 
void _patch(void* pAddress, DWORD data, DWORD iSize)
{
    unsigned long dwProtect[2];
    VirtualProtect(pAddress, iSize, PAGE_EXECUTE_READWRITE, &dwProtect[0]);
    switch(iSize)
    {
            case 1: *(BYTE*)pAddress = (BYTE)data;
                break;
            case 2: *(WORD*)pAddress = (WORD)data;
                break;
            case 4: *(DWORD*)pAddress = (DWORD)data;
                break;
            default: memset(pAddress, data, iSize);
                break;
    }
    VirtualProtect(pAddress, iSize, dwProtect[0], &dwProtect[1]);
}
 
void __declspec(naked) selectGunFlash()
{
    __asm
    {
        test    ebx, ebx
        jnz     cont
        push    aGunflash
        mov     edx, 0x4A0F33
        jmp     edx
 
cont:
        movsx   edx, byte ptr [ebx+0x718] // CPed.CurrentWeaponSlot
        imul    edx, 0x1C
        mov     edx, [ebx+edx+0x5A0]
        mov     weapon, edx
    }
    for(i=0;i<50;i++)
    {
        if(list[i].id==0 || list[i].id==weapon) break;
    }
    if(list[i].id==weapon)
    {
        strcpy(dynname,list[i].name);
        __asm
        {
            lea     edx, [dynname]
            push    edx
            mov     edx, 0x4A0F33
            jmp     edx
        }
    }
    else
    {
        __asm
        {
            push    aGunflash
            mov     edx, 0x4A0F33
            jmp     edx
        }
    }
}
Кстати, мне пришлось копировать строку в новую, "динамическую" строку, чтобы потом найти её адресс через lea. Можно сделать по-другому?
Ещё раз спасибо, счастья полные штаны
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru