Сохранение данных в файл
Добрый день. Возникла проблема с сохранением и читанием этих данных из файла.
Есть массив из 5 структур. Все это забивается в ручную, после чего сохраняется в файл. Дальше из этого файла считываются данные в другой массив структур.
Вроде бы все просто, но вот в файл сохраняет какую-то крокозябру, в следствии чего считывается с него такая же крокозябра.
Вот немного кода:
Функция сохранения данных
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
struct data { char name[30]; int number; char name2[10]; }; int save(struct data data1[]) { FILE *file; if ((file = fopen("database.txt", "w")) == NULL) printf("error\n"); else { fwrite(&data1, sizeof(data), 5, file); } fclose(file); printf("Successful \n"); getch(); return 0; }
После открытия файла я вижу следующее(скрин)
Как я считываю данные в новый массив из файла:
1 2 3 4 5 6 7 8 9 10 11
if ((file = fopen("database.txt", "rb")) == NULL) { printf("error\n"); fclose(file); return 0; } else { for (int i = 0; i 5; i++) { fread(&data2, sizeof(data), 1, file); } }
Подскажите где моя ошибка
Как сохранять данные в файл С++ [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 4 года назад .
Я сделал простой цикл который считает числа и мне надо реализовать сохранения и загрузку данных. Надо что бы данные как то сохранялись и если я отключил цикл а потом снова запустил он продолжил считать.
for (size_t i = 0; i
Не обязательно простые примеры кидать, можно супер сложные я разберусь.
Отслеживать
задан 21 апр 2019 в 18:40
90 1 1 серебряный знак 8 8 бронзовых знаков
Ну делаем что-то типа for (size_t i = loadSavedValue(); i < 10000000; i++) < if (i % 10000 == 0) saveValue(i); >
21 апр 2019 в 18:43
@harry а можно более детально, я думал что это должно работать как то с fstream но я не уверен.
21 апр 2019 в 18:46
И еще интересно можно какие то другие данные получать а не числа, например может быть байты.
21 апр 2019 в 18:47
Возможный дубликат вопроса: Книги и учебные ресурсы по С++
21 апр 2019 в 18:47
В книги точно не будет того что мне нужно
21 апр 2019 в 18:51
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ну вот вам пример — прерываете программу, она при новом запуске будет продолжать работу с последнего сохраненного значения.
#include #include using namespace std; int main(int argc, const char * argv[]) < long long current_value = 1; double current_sum = 0.0; < ifstream in("data"); if (in.is_open()) < in >> current_value >> current_sum; > > for(long long i = current_value; ; ++i) < current_sum += 1.0/i; if (i % 10000 == 0) < ofstream out("data"); out > >
В каждом конкретном случае надо смотреть, как сохранять и восстанавливать состояние.
В свое время еще под DOS’ом мне попадался код, который тупо сохранял всю память и состояние процессора, но в современных операционках, по-моему, это будет слишком сложным решением.
Сохранить файл с URL-адреса — пример C#
В этой статье вы увидите пример C#, который можно использовать для сохранения файла по URL-адресу. Когда вы загружаете файл с URL-адреса, у вас есть возможность доступа, обмена и использования файла из Интернета для различных целей в зависимости от ваших потребностей. Есть несколько причин, по которым вы хотели бы скачать файлы:
- Когда вы сохраняете файлы с URL-адресов, вы можете получить доступ к этим файлам и использовать их в автономном режиме, когда доступ в Интернет ограничен или недоступен.
- Извлечение файлов с URL-адреса может помочь в совместном использовании и совместной работе, распространении контента или обмене файлами.
- Вы хотите сохранить файлы для последующего использования или ссылки. Это могут быть документы, тексты, изображения, видео, аудио или другие типы файлов, которые вы хотите сохранить для будущего использования.
- Сохранение файлов для архивирования и резервного копирования полезна для сохранения важных для вас файлов и защиты их от возможной потери или других непредвиденных событий.
- Вы можете загружать файлы с URL-адресов для учебных целей, получать учебные материалы и учиться где угодно, например, во время поездок на работу, в путешествия или в удаленные места.
Как сохранить файл с URL-адреса
Чтобы сохранить файл с веб-сайта, вам нужно знать его URL и иметь обработчик сетевых операций, подходящий для его протокола. Библиотека Aspose.HTML для .NET предоставляет удобные функции для обработки URL-адресов с различными типами протоколов. Чтобы использовать его, вам просто нужно создать пустой HTML-документ и вызвать обработчик сетевых запросов, как показано в следующем примере C#:
- Используйте конструктор HTMLDocument(), чтобы создать пустой документ.
- Создайте URL-адрес с путем к ресурсу, который вы хотите загрузить.
- Используйте конструктор RequestMessage(url), чтобы создать новый экземпляр класса RequestMessage, который представляет Сообщение HTTP-запроса. В конструктор передается параметр url , указывающий URL, на который будет отправлен запрос.
- Используйте метод Context.Network.Send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Наконец, если ответ был успешным, используйте метод File.WriteAllBytes() для сохранения файлов в локальной файловой системе.
Давайте посмотрим, как сохранить файл с URL-адреса с помощью библиотеки Aspose.HTML C#:
1using Aspose.Html; 2using Aspose.Html.Net; 3using System.IO; 4using System.Linq; 5. 6 // Create a blank document; it is required to access the network operations functionality 7 using var document = new HTMLDocument(); 8 9 // Create a URL with the path to the resource you want to save 10 var url = new Url("https://docs.aspose.com/html/net/message-handlers/message-handlers.png"); 11 12 // Create a file request message 13 using var request = new RequestMessage(url); 14 15 // Save file from URL 16 using var response = document.Context.Network.Send(request); 17 18 // Check whether response is successful 19 if (response.IsSuccess) 20 21 // Save file to a local file system 22 File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray()); 23 >
Вы можете загружать файлы с URL-адресов, используя полные примеры C# из GitHub.
Aspose.HTML предлагает бесплатные Веб-приложения HTML, которые представляют собой онлайн-коллекцию конвертеров, слияний, загрузчиков, инструментов SEO, генераторов HTML-кода, инструментов URL и многое другое. Приложения работают в любой операционной системе с веб-браузером и не требуют установки дополнительного программного обеспечения. Легко конвертируйте, объединяйте, кодируйте, генерируйте HTML-код, извлекайте данные из Интернета или анализируйте веб-страницы с точки зрения SEO, где бы вы ни находились. Используйте нашу коллекцию веб-приложений HTML, чтобы выполнять повседневные дела и сделать свой рабочий процесс безупречным!
Как сохранить файл
с нужным пользователю расширением

Рекомендации типа «сохранить файл с расширением .xxx» часто встречаются в инструкциях компьютерной тематики. Однако, многие пользователи не умеют этого делать.
Для них это краткое руководство.
Расширение есть почти у каждого файла. Благодаря ему компьютер определяет, к какому типу файл принадлежит и как его использовать. Оно представляет собой специальную метку, прописываемую через точку от названия файла. Больше о расширении можно узнать здесь.
Когда говорят, что файл необходимо сохранить с каким-то расширением, имеется в виду, что при сохранении нужно конкретно указать, каким это расширение должно быть. Если этого не сделать, файл сохранится с каким-нибудь «стандартным» расширением и в результате не будет выполнять требуемые функции.
Чтобы было понятнее, рассмотрим порядок сохранения файла с расширением .html в текстовом редакторе Блокнот.
1. В меню Блокнота выбрать пункт «Сохранить как».
2. В поле «Имя файла» сразу же после названия файла поставить точку, а после нее — нужное расширение (в нашем случае это html). Точка должна быть одна, пробелы после нее — отсутствовать (см. изображение).

3. Нажать кнопку «Сохранить».
Во многих программах предусмотрена возможность выбора нужного расширения из доступных вариантов. В таком случае при сохранении вместо того, чтобы «вручную» прописывать расширение, можно просто выбрать его из списка. Вот, как это выглядит в программе Notepad++.

ПОДЕЛИТЬСЯ:

НАПИСАТЬ АВТОРУ
Похожие материалы

Как изменить ассоциации файлов
Операционная система Windows умеет автоматически определять тип каждого файла и открывать его при помощи подходящей программы. Пользователю достаточно лишь дважды щелкнуть по файлу левой кнопкой мышки.
Происходит это потому, что у каждого файла есть расширение, а в настойках операционной системы компьютера заложена некая схема взаимосвязей, в которой каждому расширению файла соответствует определенная программа, которую компьютер использует чтобы открывать такие файлы. Эта схема взаимосвязей типов расширений файлов и программ называется ассоциациями файлов.
Программа, при помощи которой компьютер автоматически открывает файлы определенного типа, называется программой по умолчанию.
Если пользователя не устаивает программа, используемая по умолчанию для какого-то типа файлов, ассоциации файлов можно изменить.

Что такое хеш файла и как его узнать
Каждый файл имеет определенные идентифицирующие свойства: имя, расширение, размер и др. Но ни одно из этих свойств не является уникальным и не позволяет однозначно идентифицировать каждый файл. Например, может существовать несколько однотипных файлов одинакового размера и с одинаковыми именами, отличающихся при этом по содержанию.
Проблему уникальной идентификации решает так называемая хеш-сумма файла (в разговорной речи — просто хеш).

Понятие Файла и папки
Пользователь компьютера постоянно имеет дело с файлами и папками. Из изложенной ниже статьи начинающие читатели узнают о том, что такое файл, что такое папка, в чем между ними состоит разница и как их на практике различать.

Как переименовать несколько файлов сразу
Изменить имя файла не сложно: два — три клика мышкой, нажатие нескольких клавиш на клавиатуре плюс две секунды потраченного времени — и готово. Но если нужно переименовать несколько десятков или сотен файлов, «ручное» решение этой задачи становиться серьезной проблемой.
Тем не менее, операционная система Windows позволяет осуществлять групповое переименование настолько же просто, как и в случае с одним файлом. Но почему-то об этой возможности знают далеко не все пользователи.

Как открыть файл в формате djvu
DjVu — это технология компактного хранения электронных копий документов, созданных с помощью сканера, когда распознавание текста нецелесообразно.
В виде файлов формата djvu хранится огромное количество отсканированных книг, журналов, документов, научных трудов и т.д. Файлы получаются компактными за счет незначительной потери качества изображений. Тем не менее, в них сохраняются фотографии, элементы художественного оформления и другие графические нюансы.
Не смотря на распространённость файлов djvu, у многих начинающих пользователей компьютера возникают трудности с их открытием.

Как разделить файл на части
Часто возникают ситуации, когда нужно большой файл разделить на несколько частей с возможностью их дальнейшего соединения.
Например, это может решить проблему с отправкой видео по электронной почте, если используемый почтовый сервис не позволяет пересылать файлы, превышающие определенный размер. Файл можно разрезать на части и переслать его в нескольких письмах.
Примеров, когда разделение файла решает проблему, можно придумать много. Но какой бы ни была ситуация, задачу с «разрезанием» можно решить при помощи обычного архиватора.

ПОКАЗАТЬ ЕЩЕ