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

Не могу считать матрицу из файла в динамический массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указатель на метод класса http://www.cyberforum.ru/cpp-beginners/thread1115058.html
Доброго времени суток, форумчане. Необходимо получить указатель на размер вектора. Делаю из соображений быстродействия, т.к. каждый раз обращаться через оператор точки будет долго. Возможно я не прав. Просто думается, что обращаться напрямую через указатель быстрее нежели через класс. Искал много и даже находил решения моей проблемы, но вообще не понимаю как делать и как должно работать. Прошу...
C++ Max_element можете объяснить как и с нескольких чисел определить максимальное число используя операцию max_element, и присвоит его переменной max, зарание спасибо за помощь... http://www.cyberforum.ru/cpp-beginners/thread1115048.html
Найти ошибку C++
Не могу понять, что не так в программе, она запускается, но выдает не совсем, то что нужно, а нужно именно преобразовать слова null, one, two, three в числа 0,1,2,3 , но если ввести другое число например four, то вывести сообщение об ошибке. Моя прога запускается и и преобразовывает слова в числа, но она будет их преобразовывать в эти числа даже если я введу туда любой набор букв. Заранее...
C++ В заданной строке установить пробелы вместо символов
1)В заданной строке установить пробелы вместо символов, номера позиций которых при делении на 4 дают в остатке 3. 2)Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы отделяются друг от друга одной или несколькими пустыми строками и нумеруются от 1). Пустые строки, предшествующие и следующие за удаляемым абзацем, не удалять. Если абзац с данным номером отсутствует, то...
C++ Классы student и prepod поместить в один массив http://www.cyberforum.ru/cpp-beginners/thread1115041.html
Имеются наследники класса person : student и prepod. Нужно создать массив, в котором будут храниться объекты этих классов и вывести на экран, например, только студентов. Не знаю как именно создать массив, чтобы при помощи typeid обращаться к нужным элементам Без массива всё работает...Вот код. #include <iostream> using namespace std; class person { char *name;
C++ Нужно создать массив строк и найти слова Нужно создать массив строк, строки состоят из символов. Вывести только русские слова, где гласных символов больше. Массив сделать динамическим. А поиск слов через функцию. Ввод строк через аргументы командной строки... Помогите пожалуйста, а то мне программирование не сильно даётся! подробнее

Показать сообщение отдельно
star_fish_xd
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 5
10.03.2014, 02:20  [ТС]     Не могу считать матрицу из файла в динамический массив
SIZE2 задан в начале проги как константа: const int SIZE2=2;
вот весь код целиком:

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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
const int SIZE1 = 200;
const int SIZE2= 2;
const char strConst[100]="D:\\temp.txt";
 
 
int main()
{
    cout<<"Input the filepath to the text file with data (example: D:\\\\text.txt):"<<endl;
    char str[SIZE1];
    cin>>str;
    ifstream in (str);
    ofstream out (strConst);
    if(! in)
    {
        cout<<"Error_1";
        return 1;
    }
 
    if (!out)
    {
        cout<<"Error_2";
        return 1;
    }
    char ch;
    while (in.get(ch))
    {
        if(ch==',')
        {
            ch=' ';
        }
        out.put(ch);
        cout<<ch;
    }
    in.close();
    out.close();
 
    fstream f (strConst);
        if (! f)
        {
            cout<<"Error_3";
            return 1;
        }
        int numberOfString=0;
        while (!f.eof()) if (f.get()=='\n') numberOfString++;  //считаем количество строк
        numberOfString+=1;
        cout<<numberOfString<<endl;
 
        int **a=new int *[numberOfString];     
        for (int i=0; i<numberOfString; i++)
        {
            a[i]=new int [SIZE2];
        }
 
        
        for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)
            f<<a[i][j];                               //не работает, непон€тно почему!
    }
 
        /*
        for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)                       //в таком виде все работает  
            a[i][j]=0;
    }
 
 
    */
    for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)
            cout<<a[i][j]<<" ";
    }
 
    delete [] a;
 
 
    f.close();
 
        
    getch();
    return 0;
}
Добавлено через 1 час 27 минут
Fene4ka_, SIZE2 задан в начале проги как константа: const int SIZE2=2;
вот весь код целиком:
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
const int SIZE1 = 200;
const int SIZE2= 2;
const char strConst[100]="D:\\temp.txt";
 
 
int main()
{
    cout<<"Input the filepath to the text file with data (example: D:\\\\text.txt):"<<endl;
    char str[SIZE1];
    cin>>str;
    ifstream in (str);
    ofstream out (strConst);
    if(! in)
    {
        cout<<"Error_1";
        return 1;
    }
 
    if (!out)
    {
        cout<<"Error_2";
        return 1;
    }
    char ch;
    while (in.get(ch))
    {
        if(ch==',')
        {
            ch=' ';
        }
        out.put(ch);
        cout<<ch;
    }
    in.close();
    out.close();
 
    fstream f (strConst);
        if (! f)
        {
            cout<<"Error_3";
            return 1;
        }
        int numberOfString=0;
        while (!f.eof()) if (f.get()=='\n') numberOfString++;  //считаем количество строк
        numberOfString+=1;
        cout<<numberOfString<<endl;
 
        int **a=new int *[numberOfString];     
        for (int i=0; i<numberOfString; i++)
        {
            a[i]=new int [SIZE2];
        }
 
        
        for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)
            f<<a[i][j];                               //не работает, непон€тно почему!
    }
 
        /*
        for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)                       //в таком виде все работает  
            a[i][j]=0;
    }
 
 
    */
    for (int i=0; i<numberOfString; i++)
    {
        for (int j=0; j<SIZE2; j++)
            cout<<a[i][j]<<" ";
    }
 
    delete [] a;
 
 
    f.close();
 
        
    getch();
    return 0;
}
 
Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru