Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zargandr
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 18
#1

Вывод матрицы в файл, инициализация - C++

21.10.2011, 00:25. Просмотров 787. Ответов 5
Метки нет (Все метки)

Здравствуйте, вечер вопросов, надеюсь на вашу помощь, кучу времени убил уже( Цели простая: заполнить матрицу последовательными числами, вывести результат на консоль, затем вывестти результат в текстовый файл. Столкнулся с проблемами: матрица не хочет нормально инициализироваться, при выводе в файл выводятся не числа, а символы, после завершения программы не ждет нажатия enter? а сразу выключается. Заранее спасибо, мой код ниже) Изпользую 2010 visual studio.

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
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <fstream>
 
using namespace std;
using std::cin;
using std::wcout;
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
int k=0;
 
int i,j;
const int nstr=2, nstb=6;
int matrix [nstr][nstb];
for ( i=0; i<=nstr; i++)
for ( j=0; j<=nstb; j++)
{matrix[i][j]=k; k=k+1;}
 
for (int i=0; i<nstr; i++) {
cout<<'\n';
for (int j=0; j<nstb; j++)
cout<<*matrix[i,j]<<' ';
 
}
 
ofstream file ("C:/text.txt");
if (!file){Console::WriteLine(L"Поток не работает");}
file.write (reinterpret_cast <char *> (&matrix),sizeof matrix);
 
return 0;
 
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 00:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод матрицы в файл, инициализация (C++):

Некорректный вывод матрицы в файл - C++
Добрый день! Возникла такая проблема, во время работы программы при поиске максимального или минимального значения элемента строки матрицы,...

Вывод матрицы в текстовый файл - C++
День добрый, ребята. Пытаюсь сделать прототип матрицы смежности графа, но имею недостаточно знаний. Нашел здесь заготовку, которую следует...

Вывод матрицы на экран/в файл - C++
Здравствуйте. Прошу помочь с выводом матрицы на экран\в файл, перепробывал много вариантов но всё никак( Сама программа: #include...

Матрицы. Ввод и вывод в файл матрицу. - C++
Прочитать из текстового файла элементы квадратной матрицы. Предусмотреть возможность работы с матрицами различной размерности. Повернуть...

Формирование матрицы по шаблону и вывод в файл построчно - C++
Помогите плиз. С клавиатуры вводится порядок квадратной матрицы.Требуется формировать матрицу по шаблону и вывести в файл построчно. ...

Инициализация и вывод значений массива - C++
Задача(ликвидировать мое незнание ) Всем привет! Столкнулся с проблемой, давно у нас не было си,а теперь опять ввели.А я мало, что...

5
-=ЮрА=-
Заблокирован
Автор FAQ
21.10.2011, 12:13 #2
Цитата Сообщение от zargandr Посмотреть сообщение
надеюсь на вашу помощь
Вот код
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
// matr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
int main(int argc, char* argv[])
{
    int i, j, k, nstr, nstb;
    cout<<"Enter rows in matrix : ";cin>>nstr;
    cout<<"Enter cols in matrix : ";cin>>nstb;
    //Открываем поток
    ofstream file ("text.txt");//text.txt будет в каталоге программы
    //Далее создаём динамическую матрицу
    //предлагаю уйти от статических массивов
    //и учиться уже работать с массивами
    //размерность которіх задаётся пользователем
    int ** matrix = new int *[nstr];//Память под строки
    for(i = 0, k = 0; i <= nstr; i++)
    {
        matrix[i] = new int [nstb];//Память под элементы строки
        for(j = 0; j <= nstb; j++, k++)
        {
            cout<<(matrix[i][j] = k)<<" ";
            file<<matrix[i][j]<<" ";
        }
        cout<<"\n";
        file<<"\n";
    }
    file.close();//Закрываем поток
    delete [] matrix;//Чистим память
    system("pause");//Чтобы програма сразу не закрывалась
    return 0;
}
0
Миниатюры
Вывод матрицы в файл, инициализация  
-=ЮрА=-
Заблокирован
Автор FAQ
21.10.2011, 12:23 #3
Остановлюсь на ошибках, думаю это полезно будет
Цитата Сообщение от zargandr Посмотреть сообщение
matrix[i,j]
- обращению к элементу 2-х мерного массива осуществляется вот так matrix[i][j], такое обращение *matrix выдаст нам указатель на 1-ую строку матрицы (вобщем номер ячейки памяти)

Цитата Сообщение от zargandr Посмотреть сообщение
C:/text.txt
- слеш в другую сторону следует записать причём двойной иначе компилятор попытается скомпилировать такую связку \smb как один из зарезервированных символов и скорее всего выдаст нам предупреждение \smb - unknown character
Вобщем так пишем C:\\test.txt, при этом такая запись является абсолютным путём, думаю нам файл test.txt нужен в каталоге программы поэтому рекомендую относительный путь использовать
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ofstream file ("text.txt");//text.txt будет в каталоге программы
Цитата Сообщение от zargandr Посмотреть сообщение
file.write (reinterpret_cast <char *> (&matrix),sizeof matrix);
впринципе можно и write использовать но С++ файловые потоки позволяют непосредственный ввод в них, так что используем это преимущество
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
file<<matrix[i][j]<<" ";
Надеюсь мои замечания вам пригодятся
0
alkagolik
Заблокирован
21.10.2011, 12:30 #4
-=ЮрА=-, зуб даю что этот код ему кто-то написал. при чем он (автор программы) не лишен чувства юмора
0
-=ЮрА=-
Заблокирован
Автор FAQ
21.10.2011, 12:50 #5
alkagolik, а с чего вы так решили, что человек не сам писал?

Не по теме:

Единсвенным моим предположением является что тип проекта CLI а не консоль

Цитата Сообщение от zargandr Посмотреть сообщение
int main(array<System::String ^> ^args)
(хотя я не спец в новых разновиднотях System и в С# встречал), а так на лицо явные попытки ТС, причём в не лишённые спысла, написать работоспособный алгоритм

0
zargandr
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 18
21.10.2011, 13:02  [ТС] #6
Юра, спасибо. Писал сам, используя учебник Павловской, чувство юмора хорошее, здесь им старался пренебречь)

Добавлено через 3 минуты
часто встает проблема в мелких ошибках , как например matrix[i,j] (это же из С#( ) , становится грустно из этого, но дух мой бодр и готов к новым знаниям
0
21.10.2011, 13:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 13:02
Привет! Вот еще темы с ответами:

Инициализация матрицы - C++
Здравствуйте. В 9 строчке где только }; написано выдается ошибка: variable-sized object 'matr' may not be initialized. Что может быть не...

Инициализация структур и не вывод строчки char* - C++
Это вопрос не вопрос как делать. Это вопрос: &quot;Почему такие результаты&quot;. struct A { char *S; }; int...

Объявление ,инициализация ы вывод на экран двусторонней очереди - C++
Добрый вечер! Ребята подскажите ,я правильно все сделал ? Задание :объявить двустороннюю очередь с элементами целого типа и именем ...

Объявление и инициализация динамической матрицы - C++
Ребят, только начал разбираться с матрицой. примерно я знаю как написать матрицу, но не знаю как написать динамическую матрицу, и чтоб...


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

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

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