Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
IMD
2 / 2 / 0
Регистрация: 17.06.2010
Сообщений: 38
#1

Работа с файлами

17.06.2010, 11:29. Просмотров 836. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста решить задачку:
Дан двоичный файл, содержащий расположенные по строкам M двумерных
вещественных массивов, каждый размером L X K ( L строк, K строк ).
Каждый элемент массива помещен в отдельную запись.
Составить программу, формирующую этот файл (например, 3 массива
размером 2 на 3).
Составить программу, осуществляющую сохранение двумерных массивов с
указанным с клавиатуры интервалом номеров в литерных файлах, имена
которых по запросу программы вводятся с клавиатуры.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2010, 11:29
Ответы с готовыми решениями:

Работа с файлами
Всем добрый вечер. Столкнулся с несколькими проблемами - попытаюсь все...

Работа с файлами
Нужно записать с одного файла в другой на С++ Добавлено через 46 минут ап...

работа с файлами
задача программы и само задание состоит в следующем: Файл f содержит буквы...

работа с файлами
1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова...

работа с файлами
Здравствуйте! Мне надо написать программу которая будет: Каждую...

1
cx5xclxxl9
0 / 0 / 1
Регистрация: 12.05.2011
Сообщений: 23
29.05.2011, 00:52 #2
Лучший ответ Сообщение было отмечено IMD как решение

Решение

Тоже имеется схожая задача, не могу решить.

Дан двоичный файл, содержащий расположенные по строкам M двумерных
вещественных массивов, каждый размером L X K ( L строк, K строк ).
Каждый элемент массива помещен в отдельную запись.
Составить программу, формирующую этот файл (например, 3 массива
размером 2 на 3).
Составить программу, осуществляющую замену в двоичном файле
двумерных массивов в указанном с клавиатуры интервале номеров на
двумерные массивы, содержащиеся в других, литерных файлах, имена
которых вводятся с клавиатуры по запросу программы.


Добавлено через 6 часов 21 минуту
Я не могу понять, массивы составлять рандомно или из каких-то конкретных элементов?

Добавлено через 1 час 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
// laba3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
#include <iostream>
using namespace std;
#define cyrOut(_string_) CharToOem(_string_,szStr);\
cout << szStr
char szStr[512];
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    FILE *fin, *fout;
    fin=fopen("test.bin","rb");
    
 
 
    cyrOut("Введите количество двумерных вещественных массивов: ");
    int m;
    cin>>m;
    cyrOut("Введите число строк в массивах: ");
    int l;
    cin>>l;
    cyrOut("Введите число столбцов в массивах: ");
    int k;
    cin>>k;
    char x[10][10][10];
    
 
 
    for(int i=0;i<m;i++)
    {    for(int a=0;a<l;a++)
       {
 
        cyrOut("Введите элементы "); cout<<a+1; cyrOut(" строки "); cout<<i+1; cyrOut(" массива: ");
    
        for(int b=0 ;b<=k-1;b++)
            cin >> x[i][a][b];
       }
    }
 
 
 
    for (int i=0;i<m;i++)
    {
        for (int o=0;o<l;o++)
        {
            for (int p=0;p<k;p++)
 
             fprintf(fin,"%f",x[i][o][p]);
        }
    }
 
 
    fclose(fin); 
 
 
 
 
    
 
 
    system("PAUSE");
    return 0;
}
Добавлено через 29 минут
Цитата Сообщение от cx5xclxxl9 Посмотреть сообщение
FILE *fin, *fout;
fin=fopen("test.bin","rb");
Всё, нашёл. Ошибка была здесь.
нужно было
C++
1
2
FILE *fin, *fout;
 fin=fopen("test.bin","wb");
Добавлено через 21 час 38 минут
бамп.

Добавлено через 7 часов 20 минут
Вот, попытался сделать вторую часть программы

Цитата Сообщение от cx5xclxxl9 Посмотреть сообщение
Составить программу, осуществляющую замену в двоичном файле
двумерных массивов в указанном с клавиатуры интервале номеров на
двумерные массивы, содержащиеся в других, литерных файлах, имена
которых вводятся с клавиатуры по запросу программы.
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
#include <fstream>
#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
#define cyrOut(_string_) CharToOem(_string_,szStr);\
cout << szStr
char szStr[512];
 
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char y[10][10][10];
    char t[10][10][10];
    ifstream is("text.dat", ios::binary);
        int b[1000];
        is.read(reinterpret_cast<char*>(y),sizeof(y));
        is.close();
 
    cyrOut("Введите количество двумерных вещественных массивов, которые вы хотите заменить: ");
    int m;
    int n;
    string file;
    cin>>m;
    
    
    for (int i=1;i<=m;i++)
    {   cyrOut("Введите номер двумерного вещественного массива, который вы хотите заменить: ");
        cin>>n;
    cyrOut("Введите имя файла из которого нужно взять массив для замены: ");
    cin>>file;
    ifstream is(file, ios::binary);
        is.read(reinterpret_cast<char*>(t),sizeof(t));
        is.close();
        strcpy(y[n],t[1]);
    }
 
 
 
    for(int a=1;a<10;a++){
        for(int b=1;b<10;b++){
            for(int c=1;c<10;c++)
                cout<<y[a][b][c];
        }
    }
 
    
 
 
 
 
 
system("PAUSE");
    return 0;
}
Компилятор ругается на вот эту строчку
C++
1
    strcpy(y[n],t[1]);
Не получается скопировать один массив в другой. Циклом тоже не выходит, может кто знает как ещё можно?

Добавлено через 30 минут
Сделал вот так, вроде работает

C++
1
memcpy(y,t,sizeof y);
Подскажите, как грамотно вывести массив, не зная количества элементов?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 00:52

Работа с файлами
Дан файл File_in.dat, содержащий 65536 целых чисел. Считать из файла 9 чисел...

Работа с файлами
Через #include подключить 2 файла которые уже существуют и затем вызвать их...

Работа с файлами
Есть следующее задание. Написать программу, которая выводит строку, набранную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru