0 / 0 / 1
Регистрация: 09.11.2010
Сообщений: 47
1

Запись 2мерного масива в txt

07.01.2011, 12:49. Показов 892. Ответов 12
Метки нет (Все метки)

у меня есть 2 мерный масив элементов типа инт и мне надо записать его в файл в виде матрици

к примеру:
1 2 3
4 5 6
7 8 9
вот так вот
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2011, 12:49
Ответы с готовыми решениями:

Чтение из файла 'New.txt', запись четных строк в '1.txt', а нечетных в '2.txt'
В общем все работает, но есть "НО", иначе бы не открывал тему. Содержимое исходного файла: 1 1 1...

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

Tinyxml2 Запись масива
Мне нужно записать масив в xml файл <root> <primes> 101 103 107 149 743 751… </primes>...

Запись в txt и последующая реакция - на записанное в txt
Доброе утро. Пытаюсь решить такую задачу: Есть три файла 1.xls, 2.xls и 1.txt В файле ...

12
Freelance
Эксперт С++
2888 / 1823 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
07.01.2011, 12:57 2
Ang_07,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
int main()
{
    int matr[3][3] =
    {
        {1, 2 ,3},
        {4, 5, 6},
        {7, 8, 9}
    };
 
    std::ofstream ofs("test.txt");
    for(size_t i = 0; i < 3; ++i)
    {
        for(size_t j = 0; j < 3; ++j)
            ofs << matr[i][j] << ' ';
        ofs << '\n';
    }
    return 0;
}
0
0 / 0 / 1
Регистрация: 09.11.2010
Сообщений: 47
07.01.2011, 13:02  [ТС] 3
создался лишь пустой текстовик (

Добавлено через 47 секунд
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <fstream>
using namespace std;
 
void main()
{
    setlocale (LC_ALL, "Russian");
    int *m,**arr,n,k,f=0;
    cout<<"Введите количество строк,столбцов"<<endl;
    cin>>n;
    cin>>k;
    m=new int [n*k];
    arr=new int *[n];
    for(int i__1=0;i__1<n;i__1++)
        arr[i__1]=new int[k];
        //цыкл ввода матрицы
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                {
                        cout<<"Введите элемент матрици М["<<i+1<<"]["<<j+1<<"]"<<endl;
                        cin>>arr[i][j];
                }
        //переписование в одноменрый масив
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                        {
                        m[f]=arr[i][j];
                        f++;
                        }
        //сортировка по возростанию
         int trash = 0,count=n*k; 
 for (int i=0;i<count;i++)
  for (int j=0;j<count-i-1;j++) 
   if (m[j] > m[j+1])
    {
     trash=m[j]; 
     m[j]=m[j+1];
     m[j+1]=trash;
    }
   //вывод отсортированого одномерного масива
         for(int i=0;i<count;i++)
                 cout<<m[i]<<",";
                 cout<<endl;
        //
                                 f=0;
int n_i=n, n_j=k, ii=0, jj=0;
while(f<count)
{
        for(int j=jj; j<n_j; j++)
                arr[ii][j]=m[f++];
        ii++;
        for(int i=ii; i<n_i; i++)
                arr[i][n_j-1]=m[f++];
        n_j--;
        for(int j=n_j-1; j>=jj; j--)
                arr[n_i-1][j]=m[f++];
        n_i--;
        for(int i=n_i-1; i>=ii; i--)
                arr[i][jj]=m[f++];
        jj++;
}
cout<<endl<<endl;
for(int i=0; i<n; i++)
{
        for(int j=0; j<k; j++)
                cout<<arr[i][j]<<" ";
        cout<<endl;
}
 
    std::ofstream ofs("test.txt");
    for(size_t i = 0; i < 3; ++i)
    {
        for(size_t j = 0; j < 3; ++j)
            ofs << arr[i][j] << ' ';
        ofs << '\n';
    }
 
_getch();
}
вот в этой проге я вставил код ну тот что ты дал, а он не робит(
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 13:31 4
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
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <fstream>
using namespace std;
 
void main()
{
    setlocale (LC_ALL, "Russian");
    int *m,**arr,n,k,f=0;
    cout<<"Введите количество строк,столбцов"<<endl;
    cin>>n;
    cin>>k;
    m=new int [n*k];
    arr=new int *[n];
    for(int i__1=0;i__1<n;i__1++)
        arr[i__1]=new int[k];
    //цыкл ввода матрицы
    for(int i = 0; i < n; i++)
        for(int j = 0; j < k; j++)
        {
            cout << "Введите элемент матрици М[" << i + 1 << "][" << j + 1 << "]\n";
            cin >> arr[i][j];
        }
        //переписование в одноменрый масив
        for(int i=0;i<n;i++)
            for(int j=0;j<k;j++)
            {
                m[f]=arr[i][j];
                f++;
            }
        //сортировка по возростанию
        int trash = 0,count=n*k; 
        for (int i = 0; i < count; i++)
            for (int j = 0; j < count - i - 1; j++) 
                if (m[j] > m[j+1])
                {
                    trash = m[j]; 
                    m[j] = m[j + 1];
                    m[j + 1] = trash;
                }
        //вывод отсортированого одномерного масива
        for(int i = 0; i < count; i++)
            cout << m[i] << ", ";
        cout << endl;
        //
        f=0;
        int n_i=n, n_j=k, ii=0, jj=0;
        while(f<count)
        {
            for(int j=jj; j<n_j; j++)
                arr[ii][j]=m[f++];
            ii++;
            for(int i=ii; i<n_i; i++)
                arr[i][n_j-1]=m[f++];
            n_j--;
            for(int j=n_j-1; j>=jj; j--)
                arr[n_i-1][j]=m[f++];
            n_i--;
            for(int i=n_i-1; i>=ii; i--)
                arr[i][jj]=m[f++];
            jj++;
        }
        cout << endl << endl;
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<k; j++)
                cout<<arr[i][j]<<" ";
            cout<<endl;
        }
 
        std::fstream ofs("test.txt");
        for(size_t i = 0; i < 3; ++i)
        {
            for(size_t j = 0; j < 3; ++j)
                ofs << arr[i][j] << ' ';
            ofs << '\n';
        }
        _getch();
}
надо всего лишь вместо ofstream написать fstream
но зато у тебя не работает составление матрицы спиралькой)
0
Freelance
Эксперт С++
2888 / 1823 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
07.01.2011, 13:36 5
Цитата Сообщение от sandye51 Посмотреть сообщение
надо всего лишь вместо ofstream написать fstream
Смысл ?
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 13:37 6
тогда все работает
0
Freelance
Эксперт С++
2888 / 1823 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
07.01.2011, 13:45 7
sandye51, У меня и так все работает(см. скрин) и я уверен что проблема не в той одной букве.
Миниатюры
Запись 2мерного масива в txt  
1
13 / 13 / 4
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 13:47 8
asics,

Не по теме:

что это за компилятор такой? :)

0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 13:49 9
asics, согласен, но в моей VS 2010 тоже такая фишка не прокатила. Скорее всего надо еще какие-нибдуь флаги из ios:: надо добавить
0
Freelance
Эксперт С++
2888 / 1823 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
07.01.2011, 13:56 10
apachan, Компилятор GCC, IDE - Code::Blocks
0
0 / 0 / 1
Регистрация: 09.11.2010
Сообщений: 47
07.01.2011, 14:03  [ТС] 11
у меня Visual 10

Добавлено через 3 минуты
всё работает всем спасибо
0
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
07.01.2011, 14:03 12
"test.txt"
Путь к файлу надо указывать.
допустим "C:\\test.txt"
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 14:14 13
Лучший ответ Сообщение было отмечено как решение

Решение

Genius Ignat, как бэ если файл лежит в директории программы, то неполное имя тоже гуд
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2011, 14:14
Помогаю со студенческими работами здесь

Запись и вывод значений из масива
Здравствуйте! есь скрипт: var lunch; var str; ...

Запись масива данных в столбец
for i in range(data.shape): if int(data)==0: a=np.append(a,float(data)) else: ...

Запись масива int-ов в бинарный файл
Задание звучит так: Напишите функцию bool writeIntArray(const int arr, int size, FILE *fp),...

Запись и чтение *.txt файла - запись частичная
Доброе время суток! Помогите решить проблемку. У меня либо не полностью считывается файл, либо не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru