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

программа работающаю с динамической матрицей(память выделяется динамически) трабл с подсчетом строк в файле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ VirtualAlloc http://www.cyberforum.ru/cpp/thread56425.html
Необходимо зарезервировать память в определенном фиксированном регионе виртуального адресного пространства. const int Addr2=0x00043534; int NumberOfBytes=20; LPVOID lpMem=VirtualAlloc((LPVOID)Addr2, NumberOfBytes, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if(!lpMem) { MessageBox(0, L"Cannot commit a region of reserved pages", L"Error", MB_OK); return -1; }
C++ Получить ip-адреса Можно ли получить ip-адреса клиентов в онлайновой игре? Любые внутренние или внешние. http://www.cyberforum.ru/cpp/thread56252.html
C++ Каретка в режиме Insert
собственно сабж, как сделать каретку, чтобы она была толстой и заменяла символы может есть ккая то стандартная команда, а то я уже охренел от ручной обработки, ничего не выходит я создавал каретку CreateSolidCaret(); такая, какая нужно, но она почему то появляется не в окне редактирования, а в левом верхнем углу приложения вдобавок было бы интересно узнать как получить позицию каретки в...
VirtualProtect C++
Где можно узнать значение последнего параметра VirtualProtect (typedef DWORD* PDWORD) PDWORD lpflOldProtect? Если ставить 0 функция всегда будет терпеть неудачу и возвращать 0.
C++ Каретку в начало Edit'a http://www.cyberforum.ru/cpp/thread56121.html
нужно чтобы при переключении на контрол EDIT каретка переходила в начало на событие EN_SETFOCUS повесил POINT point; point.x=0; point.y=0; SetCaretPos(point); каретка действительно перескакивает в начало, только почему-то когда начинаешь писать она добавляет символы в конце и сама также переходит в конец кто знает в чем дело? и ещё она как то странно прилипает к самому краю контрола,...
C++ Ошибка: invalid types ‘int[int]’ for array subscript Всем доброго дня, после компиляции выводится ошибка, которая меня вводит в ступор. #include "blitz.h" double dummy11 = 0.0; Array <double,2> dG_3(2,2); dG_3 = 0.0; for (i = 0; i < 2; i++) { dummy11= 1./m*(dG_3(0,i) - dG_3(1,i)); }Ошибка: подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
23.10.2009, 12:13     программа работающаю с динамической матрицей(память выделяется динамически) трабл с подсчетом строк в файле
Вот мои соображения:
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
#include <windows.h>
#include <stdio.h>
 
char * sData = (char *)malloc(sizeof(char));
char * GetFileData(char * fName, char * sData);
int GetNumSymbls(char * sData, char Smbl);
float * GetRow(char * sRow, char Smbl, float * fRow);
 
float ** mass = (float **)malloc(sizeof(float));
 
void main()
{
    sData = GetFileData("matrix.txt", sData);
    //Подсчёт числа строк
    //\n - окончание строки
    int m = GetNumSymbls(sData, '\n') + 1;
    //между элементами матрицы - пробел
    //Подсчёт числа элементов
    int num = GetNumSymbls(sData, ' ') + m;
    int n = 0;
    mass = (float **)realloc((void *)mass,sizeof(float)*m);
    char * chBuf = strrchr(sData,'\n');
    while(chBuf)
    {
        //Этим условием избегаем ситуации когда
        //вконце файла пользователей несколько лишних
        //раз Enter нажал
        if(chBuf + 1)
        {
            n++;
            mass[num/m - n] = (float *)malloc(sizeof(float));
            mass[num/m - n] = GetRow(chBuf + 1,' ', mass[num/m - n]);
        }
        sData[strlen(sData) - strlen(chBuf) - 1] = '\0';
        chBuf = strrchr(sData,'\n');
    }
    n++;
    mass[num/m - n] = (float *)malloc(sizeof(float));
    mass[num/m - n] = GetRow(sData,' ', mass[num/m - n]);
    printf("\tInput matrix :\r\n");
    for(int i = 0,j; i < m; i++)
    {
        for(j = 0; j < n; j++)
            printf("%.2f ",mass[i][j]);
        printf("\r\n");
    }
    printf("Press NUM1 to read new matrix\r\n");
    scanf("%d",&num);
    if(num == 1)
        main();
}
 
char * GetFileData(char * fName, char * sData)
{
    FILE *f = fopen(fName,"rb+");
    if(f)
    {
        fseek(f,0,SEEK_END);
        int sLen = ftell(f);
        fseek(f,0,SEEK_SET);
        sData = (char *)realloc(sData,sizeof(char)*sLen);
        fread(sData,1,sLen,f);
        fclose(f);
        sData[sLen] = '\0';
    }
    return sData;
}
 
int GetNumSymbls(char * sData, char Smbl)
{
    int RetVal = 0;
    char * chBuf = strchr(sData,Smbl);
    while(chBuf)
    {
        RetVal++;
        chBuf = strchr(chBuf + 1,Smbl);
    }
    return RetVal;
}
 
float * GetRow(char * sRow, char Smbl, float * fRow)
{
    int i = 0, n = GetNumSymbls(sRow, ' ') + 1;
    fRow = (float *)realloc((void *)fRow,sizeof(float)*n);
    char * chBuf = strrchr(sRow,Smbl);
    while(chBuf)
    {
        i++;
        fRow[n - i] = atof(chBuf);
        sRow[strlen(sRow) - strlen(chBuf)] = '\0';
        chBuf = strrchr(sRow,Smbl);
    }
    fRow[n - i - 1] = atof(sRow);
    return fRow;
}
Изображения
 
Вложения
Тип файла: txt matrix.txt (72 байт, 17 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru