Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2017, 23:31   #1
Beslan_AG
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 18
По умолчанию [C++] Как записать массив в файл?

помогите с кодом .суть такая создать массив чисел и записать его в файл
массив и файл я создал а как записать в файл не знаю
вот мой код
Код:
	ListBox1->Items->Clear();
	int size = 0;
	size = Edit1->Text.ToInt();
	int * mass = new int[size];
	for (int i = 0; i < size; i++) {
		mass[i] = random(100) - 50;
		ListBox1->Items->Add(mass[i]);
	}

	/// создание файла 
	char*buff = new char[1024];
	strcpy(buff, "C:\\");
	strcat(buff, Edit2->Text.t_str());
	strcat(buff, ".txt");
	HANDLE hFile = CreateFile(buff, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
		FILE_ATTRIBUTE_HIDDEN, NULL);

	DWORD bytesWritten = 0;
	WriteFile(hFile, ??, ??, &bytesWritten, NULL);
	CloseHandle(hFile);
	delete[]buff;
	delete[]mass;
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 09.07.2017 в 23:36.
Beslan_AG вне форума Ответить с цитированием
Старый 10.07.2017, 08:49   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код:
FILE * pFile;
  char buffer[] = { 'x' , 'y' , 'z' };
  pFile = fopen ("myfile.bin", "wb");
  fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
  fclose (pFile);
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 10.07.2017, 13:56   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Позвольте уж немного попридираться..
1) sizeof(char) по определению равен 1. То есть sizeof по стандарту выдаёт результат именно относительно размера char. В байтах размер char может меняться, но sizeof(char) всегда 1
2) А вот если, наприммер, не char, а int, то такая запись будет ошибочной - слишком много будет выведено. Правильно будет или
Код:
fwrite (buffer , 1, sizeof(buffer), pFile);
или
Код:
fwrite (buffer , sizeof(buffer[0]), sizeof(buffer)/sizeof(buffer[0]), pFile);
Реально выводится количество байт, равное произведению этих параметров, поэтому или единица и реальный размер буфера, или размер элемента и количество элементов
Black Fregat вне форума Ответить с цитированием
Старый 10.07.2017, 14:45   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Если уж совсем придираться, то вместо sizeof лучше std::size или std::extent хотя бы.
p51x вне форума Ответить с цитированием
Старый 10.07.2017, 21:07   #5
Beslan_AG
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 18
По умолчанию

массив символ я знаю как записать. Мне нужно мой массив mass (массив из целых чисел) записать в файл.Я понял что для этого нужно числа массив представить в виде символов и только тогда они запишутся в файл.
Beslan_AG вне форума Ответить с цитированием
Старый 10.07.2017, 21:41   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

если как бинарный будете писать, то не надо
если как текстовой, то надо
p51x вне форума Ответить с цитированием
Старый 10.07.2017, 21:44   #7
Beslan_AG
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 18
По умолчанию

Проблем в том что не могу перевести массив целых чисел в массив char
Beslan_AG вне форума Ответить с цитированием
Старый 10.07.2017, 22:20   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Вы в каком формате писать хотите? Текстовом или бинарном? Если в бинарном, то ничего переводить не надо. Если в текстовом, то есть куча функций, начиная со старичков itoa и до std::to_string, std::to_chars...
p51x вне форума Ответить с цитированием
Старый 11.07.2017, 09:15   #9
Beslan_AG
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 18
По умолчанию

спасибо))
Beslan_AG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый ввод/вывод в языке С: двоичный файл и записать в него двумерный целочисленный массив размером n*m, записать в файл F2... Анастасия_А Помощь студентам 0 28.03.2016 14:07
записать в файл массив, а в другой файл вывести повторные значения элементов массива С++ carrie bradshaw Помощь студентам 3 01.02.2014 23:27
Как можна записать в файл одномерный массив? vitiok1 Общие вопросы C/C++ 1 03.03.2012 18:39
Как записать в файл динамический массив. Вадим Буренков Общие вопросы Delphi 9 24.07.2009 15:12
Заполнить массив и записать в файл Amery Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 27.05.2008 20:02