Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/75: Рейтинг темы: голосов - 75, средняя оценка - 4.59
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221

Вывод массива в файл

08.08.2017, 13:23. Показов 14127. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа есть вопрос,
есть массив short data[1600]
как его вывести в файл одной строкой типа

C++
1
2
3
ofstream fout;
fout.open("file.txt", ios::out | ios::binary );
fout.write((char*) &data, sizeof data);
тут выводит но какую то фигню

И попутно второй, как задать имя файла с путем, те задаем:

C++
1
String file_name3 = "\\Graph" + FormatDateTime("ddmmmyyyy_hhmmss",Now()) + ".raw";
далее пытаемся
C++
1
 fout.open("file_name3", ios::out | ios::binary );
ничего не создает ...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.08.2017, 13:23
Ответы с готовыми решениями:

Вывод массива в файл
Есть кусок кода: char a; char c; FILE *f=fopen("t1.txt", "wb+"); //дальше присвоение и прочее for(i=0; i<n; i++) { ...

Вывод двухмерного массива в файл *.txt.
Как вывести двухмерный массив iMatrice в файл? Вывод будет зациклен по ходу обновления параметров W и H. Главный вопрос: Как...

Вывод двумерного массива в бинарный файл
функция вывода: void outputMassiv (int **arr, int Nr, int Nc) {ofstream binfile("D:/txt.bin", ios::app | ios::binary); for...

11
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
08.08.2017, 13:38
Тут все понятно объяснили: http://cppstudio.com/post/446/
В своей работе я так же использовал #include <fstream>, она, на мой взгляд, очень проста и надежна

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <fstream>
using namespace std;
 
int main(int argc, char* argv[])
{
    ofstream fout("cppstudio.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
    fout << "Работа с файлами в С++"; // запись строки в файл
    fout.close(); // закрываем файл
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221
08.08.2017, 13:43  [ТС]
там ответа нет.
0
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
08.08.2017, 14:14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
using namespace std;
 
int main(){
    short *m=new short[1600];//создаем массив
    for(int i=0; i<1600; i++){m[i]=i;} //заполняем массив
    ofstream fout("cppstudio.txt"); //создаем поток в cppstudio.txt
    for(int i=0; i<1600; i++){
        fout <<m[i]<< "  "; // выводим в файл элементы в строку, разделяя пробелом
    }
    fout.close(); //закрываем поток
    delete [] m; //чистим память
return 0;
}
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221
08.08.2017, 14:21  [ТС]
Посимвольно то конечно и так было понятно, весь вопрос как вывести всю строку целиком за раз.

Еще очень интересует вопрос с установкой пути и имени файла, те как запихать
String file_name3 = "\\Graph" + FormatDateTime("ddmmmyyyy_hhmmss",Now()) + ".raw";
в fout.open("file_name3", ios::out | ios::binary );

файлы создаются автоматом и имя присваивается по текущему времени, там явно что то с преобразованием типов связано String в string, пока не понял.
0
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
08.08.2017, 14:24
C++
1
2
3
int data[1600] = { /* ... */ };
ofstream out("file.txt");
std::copy(data, data + 1600, std::ostream_iterator<int>(out, " "));
Добавлено через 1 минуту
Цитата Сообщение от whale2 Посмотреть сообщение
Еще очень интересует вопрос с установкой пути и имени файла, те как запихать
C++
1
2
string file_name3 = "\\Graph" + FormatDateTime("ddmmmyyyy_hhmmss",Now()) + ".raw";
fout.open(file_name3, ios::out | ios::binary );
0
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
08.08.2017, 14:24
Цитата Сообщение от whale2 Посмотреть сообщение
Посимвольно то конечно и так было понятно, весь вопрос как вывести всю строку целиком за раз.
то есть ты хочешь 1600 элементов вывести за раз без всяких циклов?
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221
08.08.2017, 14:58  [ТС]
Цитата Сообщение от John Prick Посмотреть сообщение
2
string file_name3 = "\\Graph" + FormatDa
Так пробовал, ругается что не может конвертировать AnsiString в string

Добавлено через 41 секунду
Именно, одной строкой в 1600, вот сверху чего то написали пока не понял )

Добавлено через 4 минуты
на это

int data[1600] = { /* ... */ };
ofstream out("file.txt");
std::copy(data, data + 1600, std::ostream_iterator<int>(out, " "));

пишет

[C++ Error] Unit3.cpp(404): E2316 'ostream_iterator' is not a member of 'std'
[C++ Error] Unit3.cpp(404): E2188 Expression syntax

Добавлено через 6 минут
Шут с нем, с одной строчкой, пусть будет посимвольно, заодно пробел поставим между цифрами, вроде не сильно загружает проц
fout << data_main[i]<< " ";


Насчет пути и имени остался вопрос.

Добавлено через 19 минут
Вот так фурычит, как добавить путь и расширение ?

const char* file_name3 = FormatDateTime("ddmmmyyyy_hhmmss",Now()) .c_str();
fout.open(file_name3, ios::out | ios::binary );
0
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
08.08.2017, 15:04
Лучший ответ Сообщение было отмечено whale2 как решение

Решение

Цитата Сообщение от whale2 Посмотреть сообщение
пишет
[C++ Error] Unit3.cpp(404): E2316 'ostream_iterator' is not a member of 'std'
C++
1
2
#include <iterator>
#include <algorithm>
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221
08.08.2017, 15:13  [ТС]
Работает, спасибо )
Ого ! и даже пробелы между цифрами ставит !

А по пути что нить подскажите )
0
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,557
08.08.2017, 15:23
C++
1
2
string file_name3 = "\\Graph" + FormatDateTime("ddmmmyyyy_hhmmss",Now()) + ".raw";
fout.open(file_name3.c_str(), ios::out | ios::binary ); // <-- c_str() отличие от моего предыдущего варианта
0
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 221
08.08.2017, 15:34  [ТС]
На первую строчку тоже ругается не может конвертировать AnsiString в string
У меня заработало так

String file_name = GetCurrentDir() + "\\graph" + FormatDateTime("ddmmmyyyy_hhmmss",Now()) + ".txt";
char* qw = file_name.c_str();
fout.open(qw, ios::out | ios::binary );

мож кому пригодиться а то в гугле нифига нет ответа )

Всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2017, 15:34
Помогаю со студенческими работами здесь

Вывод отсортированного массива,в текстовой файл
В общем,написан код сортировки по убыванию в столбце,запускаю прогу,он правильно сортирует но в текстовой файл не записывает cout...

Заполнение массива структур из файла и вывод на экран/в файл
Есть структура struct tovar { int nomer; char naim; char edizm; int kolvo; int cena; }; Есть файл с...

Запись двумерного массива в текстовый файл и вывод на экран
Здравствуйте. Уже много всего исправил, и сейчас пишет что на 10 строке - &quot;не найдена несоответствующая лексема &quot;. #include...

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

Ввод из файла массива и вывод результат в файл среднее арифметическое
Задание такое вычислить среднее арифметическое элементов массива, массив задан входным файлом. Результат записать в выходной файл. Как...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru