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

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

Восстановить пароль Регистрация
 
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
07.01.2011, 12:49     Запись 2мерного масива в txt #1
у меня есть 2 мерный масив элементов типа инт и мне надо записать его в файл в виде матрици

к примеру:
1 2 3
4 5 6
7 8 9
вот так вот
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 12:49     Запись 2мерного масива в txt
Посмотрите здесь:

Запись текста в файл txt C++
C++ Заполнение 2мерного массива
C++ Запись в .txt кириллицу
C++ запись в txt и поиск
C++ Чтение/запись из/в файл .txt
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.01.2011, 12:57     Запись 2мерного масива в txt #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;
}
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
07.01.2011, 13:02  [ТС]     Запись 2мерного масива в txt #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();
}
вот в этой проге я вставил код ну тот что ты дал, а он не робит(
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.01.2011, 13:31     Запись 2мерного масива в txt #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
но зато у тебя не работает составление матрицы спиралькой)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.01.2011, 13:36     Запись 2мерного масива в txt #5
Цитата Сообщение от sandye51 Посмотреть сообщение
надо всего лишь вместо ofstream написать fstream
Смысл ?
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.01.2011, 13:37     Запись 2мерного масива в txt #6
тогда все работает
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.01.2011, 13:45     Запись 2мерного масива в txt #7
sandye51, У меня и так все работает(см. скрин) и я уверен что проблема не в той одной букве.
Миниатюры
Запись 2мерного масива в txt  
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
07.01.2011, 13:47     Запись 2мерного масива в txt #8
asics,

Не по теме:

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

sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.01.2011, 13:49     Запись 2мерного масива в txt #9
asics, согласен, но в моей VS 2010 тоже такая фишка не прокатила. Скорее всего надо еще какие-нибдуь флаги из ios:: надо добавить
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.01.2011, 13:56     Запись 2мерного масива в txt #10
apachan, Компилятор GCC, IDE - Code::Blocks
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
07.01.2011, 14:03  [ТС]     Запись 2мерного масива в txt #11
у меня Visual 10

Добавлено через 3 минуты
всё работает всем спасибо
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
07.01.2011, 14:03     Запись 2мерного масива в txt #12
"test.txt"
Путь к файлу надо указывать.
допустим "C:\\test.txt"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 14:14     Запись 2мерного масива в txt
Еще ссылки по теме:

Запись переменной в .txt C++
Запись данных в файл txt C++
Ошибка вывода 2мерного массива C++

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

Или воспользуйтесь поиском по форуму:
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.01.2011, 14:14     Запись 2мерного масива в txt #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Genius Ignat, как бэ если файл лежит в директории программы, то неполное имя тоже гуд
Yandex
Объявления
07.01.2011, 14:14     Запись 2мерного масива в txt
Ответ Создать тему
Опции темы

Текущее время: 17:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru