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

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

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Вывести массив в файл - C++

16.03.2010, 19:17. Просмотров 512. Ответов 8
Метки нет (Все метки)

Здрасти. У меня есть процедура
C++
1
ShowMatrix(DeliveryMatrix,max_row,max_col);
, которая выводит массив на экран. А как вывести его в файл?
C++
1
ofstream out(12.txt);
вот этот способ не работает
C++
1
out<<ShowMatrix(DeliveryMatrix,max_row,max_col);
не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 19:24     Вывести массив в файл #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class Type>
long SaveMatrixD(const char *Path, Type **matrixbuf, int str, int stbl){
ofstream save(Path);
if(!save)return 1;       
if(save.is_open()){
for(int i=0;i<str;i++){
    for(int j=0;j<stbl;j++){
    save<<matrixbuf[i][j]<<' ';       
}
save<<'\n';    
}
save.close();        
}
return  0;
}
...
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.03.2010, 19:26  [ТС]     Вывести массив в файл #3
ага, значит в цикле, ясно
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 19:26     Вывести массив в файл #4
save<<'\n'; //можешь не писать иначе будешь возиться с загрузкой.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.03.2010, 19:40  [ТС]     Вывести массив в файл #5
или удобно но некрасиво, или неудобно но красиво)

без save<<'\n' в строку выводит
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 19:55     Вывести массив в файл #6
PointsEqual:
Может я ошибся насчёт '\n'.
Попробуй с '\n'
Попробуй загрузить в матрицу следующим образом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<class Type>
long LoadMatrixD(const char *Path, Type **matrixbuf, int str, int stbl){
ifstream load(Path);
if(!load)return 1;       
if(load.is_open()){
for(int i=0;i<str;i++){
        for(int j=0;j<stbl;j++){
        char sb;
        load>>matrixbuf[i][j]>>sb;       
}
    
}
load.close();  //правка.       
}
return  0;
}
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
16.03.2010, 19:57  [ТС]     Вывести массив в файл #7
Genius Ignat, спасибо, все и так работает
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 20:01     Вывести массив в файл #8
Значит ошибся. приму к сведению.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2010, 20:26     Вывести массив в файл
Еще ссылки по теме:

C++ Вывести 3-ий файл в папке
C++ Вывести в файл результат
C++ Как вывести данные в файл?
Как вывести массив в файл? C++
Вывести массив в файл C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
16.03.2010, 20:26     Вывести массив в файл #9
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 <iostream>
#include <fstream>
    
template <typename T>   
std::ostream& ShowMatrix(std::ostream& ost, T **matr, size_t rows, size_t cols){
    for ( size_t i = 0; i < rows; i++ ){
        for ( size_t j = 0; j < cols; ++j )
            ost << matr[i][j] << "  ";
        ost << '\n';
    }
    return ost;
}
 
int main(){
    const int rows = 5;
    const int cols = 4;
    int **matr = new int* [ rows ];
    for ( int i = 0; i < rows; ++i )
        matr[i] = new int [ cols ];
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < cols; ++j )
            matr[i][j] = i + j;
    
    ShowMatrix(std::cout, matr, rows, cols);
    
    std::ofstream ofs("demo.txt");
    if ( !ofs.is_open() )
        return 1;
    ShowMatrix(ofs, matr, rows, cols);
    ofs.close();
    
    for ( int i = 0; i < rows; ++i )
        delete [] matr[i];
    delete [] matr;
    return 0;
}
Yandex
Объявления
16.03.2010, 20:26     Вывести массив в файл
Ответ Создать тему
Опции темы

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