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

Считывание массива из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ fstream считывает лишнее http://www.cyberforum.ru/cpp-beginners/thread884145.html
fstream считывает лишнее символы. Не пойму в чём проблема #include<iostream> #include<fstream> using namespace std; int main () { setlocale(LC_ALL,"Russian"); fstream file;
C++ Создание GUI на C++ Всем привет! Вот передо мной встал такой вопрос: в чем сейчас разрабатывают GUI на C++? Всем известно WinAPI, но как бы это сказать, оно разработано под язык Cи, и я не думаю что сейчас он актуален (могу и ошибутся). Под С++ является mfc, но почитав то что о нем пишут, почему-то мне расхотелось его учить. Можно еще С++/CLI но странно смешивать C++ и NET, лучше сразу на перейти C#. И остается Qt,... http://www.cyberforum.ru/cpp-beginners/thread884134.html
задача по С++ :компьютерная сеть C++
1)компания маша и медведь является самым сркупным интренет провайдером во всем лесу.именно поэтому ,с просьбой подключить их к интеренету обратились N поросят .домики поросят расположены в различных точках (xi,xy) .Ближайшая точка подключения расположена в точке (xnet,ynet) . для того что бы всем подулючаться к сети всем N поросят необбходимо : 1.провести провод от точки подключения...
C++ Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты
Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты.
C++ Работа с файлами C++ и C http://www.cyberforum.ru/cpp-beginners/thread884112.html
Уважаемые форумчане,кто умеет работать с файлами C и C++ ,помогите ,пожалуйста, написать данные функции на C: //Сохранение файла void save_to_file(person *persons, int size) { remove(data_filename); if (size == 0) { cout << "Массив пуст - файл удален!" << endl;
C++ Вызов двумерного массива #include<math.h> #include<windows.h> #include<iostream.h> #include<stdlib.h> int CreateArray(int a, int b, int n, int m) { int** Arr = new int *; for (int i = 0; i < n; i++) { Arr = new int ; } for (i=0;i<n; i++) { подробнее

Показать сообщение отдельно
malishev
9 / 9 / 0
Регистрация: 17.12.2012
Сообщений: 123
29.05.2013, 21:20  [ТС]     Считывание массива из файла
yuron_477, Я ни разу не пользовался векторами и не знаю, как обращаться к элементам массива, не могли бы вы вставить ваш код в мою программу. Жирным я выделил то место, которое нужно заменить
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
#include <iomanip>
#include <fstream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
using namespace std;
    char* rus(const char* text) 
{
    char *buffRus=new char[strlen(text)];
    CharToOem(text, buffRus);
    return buffRus;
}
int main()
{
 
    int c ,n, m, i, j, k, x, y, a[100][100];
 
     std::cout<<rus ("для того, чтобы заполнить случайно нажмите 0 \nДля того, чтобы заполнить вручную нажмите 1 \n\Для того чтобы заполнить из файла нажмите 2 ")<<std::endl;
     cin >> c;
     system("cls");
    if (c == 0)
    {
          std::cout<<rus("Введите количество строк: ")<<std::endl;
        cin >> n;
          std::cout<<rus("Введите количество столбцов: ")<<std::endl;
        cin >> m;
        system("cls");
        srand(time(NULL));
        for (i=0;i<=n-1;i++)
        {
            for (j=0;j<=m-1;j++)
            {
                srand(rand()%20);
                a[i][j]=rand()%10;
                cout << a[i][j] << "\t";
            }
            cout << endl;
        }
    }
    else if (c == 1)
    {
          std::cout<<rus("Введите количество строк: ")<<endl;
        cin >> n;
         std::cout<<rus("Введите количество столбцов: ")<<endl;
        cin >> m;
        system("cls");
          std::cout<<rus("Введите матрицу: \n")<<endl;
        for (i = 0; i < n; i++)
            for (j = 0; j < m; j++)
 
                    cin >> a[i][j];
    }
    [B]else if (2 == c)
    {
     char filename[80];
         std::cout<<rus("Введите путь к файлу:  ")<<endl;
        cin>>filename;
        std::ifstream ifs(filename);
        if(ifs.is_open())
        {
            ifs >> n >> m;
            for (i = 0; i < n; i++)
                for (j = 0; j < m; j++)
                    ifs >> a[i][j];
            if(!ifs)
            {
                std::cerr <<rus( "Ошибка чтения из файла\n")<<endl;
                system("pause");
            }
            ifs.clear();
            ifs.close();
        }
        else
        {
            std::cerr <<rus ("Невозможно открыть файл\n")<<endl;
            system("pause");
        }
    }[/B]
    system("cls");
      std::cout<<rus("Исходная матрица") << endl;
    for (i = 0; i < n; i++)
    {   for (j = 0; j < m; j++)
        {
            cout << a[i][j] << "\t";
        }
        cout << endl;
    }
 
     std::cout<<rus("\nКвадратные подматрицы с одинаковым колличеством четных и нечетных чисел: \n")<<endl;
 
    std::ofstream ofs("out.txt");
    if(ofs.is_open())
    {
        for (k = 2; k <= min(n, m); k += 2)
        {
            for (i = 0; i <= n - k; i++)
            {
                for (j = 0; j <= m - k; j++)
                {
                    int q0 = 0, q1 = 0;
 
                    for (x = 0; x < k; x++)
                        for (y = 0; y < k; y++)
                            if ((a[i+x][j+y] & 1) == 0)
                                q0++;
                            else
                                q1++;
 
                    if (q0 == q1)
                    {
                        cout << "===============================================\n";
                        for (x = 0; x < k; x++)
                        {
                            for (y = 0; y < k; y++)
                                cout << std::setw(6) << std::left << a[i+x][j+y];
                            cout << '\n';
                        }
                        cout << '\n';
 
 
                        ofs << "===============================================\n";
                        for (x = 0; x < k; x++)
                        {
                            for (y = 0; y < k; y++)
                                ofs << std::setw(6) << std::left << a[i+x][j+y];
                            ofs << '\n';
                        }
                        ofs << '\n';
                    }
                }
            }
        }
        ofs.close();
    }
    else
        std::cerr << "Unable to open output file\n";
 
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Жирный шрифт не получился, вставить нужно между else if (2 == c) и std::cerr <<rus ("Невозможно открыть файл\n")<<endl;
system("pause");
}
}
 
Текущее время: 07:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru