3 / 3 / 0
Регистрация: 03.06.2019
Сообщений: 64
1

Неудачная запись в файл

13.07.2020, 00:08. Показов 297. Ответов 4
Метки нет (Все метки)

Всем привет!
Упрощенная версия некой функции, которая работает с файлами выглядит как-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void fillTxtWithCounts(const string& path, const vector<size_t>& counts) {
    ofstream output(path);
    assert(output.is_open());
    
 
    for (size_t elem{ 1 }; elem != counts.size() - 1; elem++) {
        for (size_t i{ 0 }; i != counts[elem] * counts[elem - 1]; i++) {
            output << 0 << " ";
        }
        output << '\n';
    }
    output.close();
}
Теперь в main() идет вызов:

C++
1
fillTxtWithCounts("testInput.txt", std::vector<size_t> {10'000, 12'000, 6'000, 1'000, 10});
Даже не спрашивайте, зачем мне выводить в бедный txt столько нулей .
Проблема в том, что программа зависает на вечность - никаких исключений она не кидает, просто виснет, и все. С меньшим количеством данных, потипу
C++
1
fillTxtWithCounts("testInput.txt", std::vector<size_t> {100, 120, 60, 10, 10});
она справляется на ура.
Я понимаю, что проблема возникает изза огромного к-ва данных, вводимых в файл(При этом есть странность - каждый раз после неудачного запуска такой ф-и, количество памяти, записанной в txt отличаеться кардинально). Но почему существует такое "неявное" ограничение для программы написанной мной, и при этом нет ограничений для меня, ведь я свободно могу дописать в файл любое к-во информации вручную даже после того, как моя функция уже "неудачно" завершилась, успев записать лишь треть данных?
Мне просто нужно, чтобы результатом выполнения моей программы был текстовый документ, забитый данными. Так как это сделать? Заранее спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2020, 00:08
Ответы с готовыми решениями:

Неудачная запись диска
не уверен, что пишу куда нужно бы, но тем не менее... пытаюсь записать образ на диск CD-R, но...

Неудачная запись пользовательских данных в *.resx
Доброго времени суток. Создал пользовательский контрол (назовем его UC), в котором содержится...

Запись в файл - проверить, не идет ли в него запись, чтобы не генерировалось исключение
Доброе время суток! Вот такой пример: Imports System Imports System.IO Module Module1 ...

Пожалуйста напишите программу, которая добавляет запись в типизированый файл тип - запись
Которая добавляет запись в типизированый файл тип - запись добавляет к той записи в файле...

4
С чаем беда...
Эксперт CЭксперт С++
9975 / 5330 / 1458
Регистрация: 18.10.2014
Сообщений: 12,810
13.07.2020, 00:26 2
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
Проблема в том, что программа зависает на вечность
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
ведь я свободно могу дописать в файл любое к-во информации вручную даже после того, как моя функция уже "неудачно" завершилась
Не понял. Так все таки: "программа зависает на вечность" или "функция неудачно завершается"?
0
3 / 3 / 0
Регистрация: 03.06.2019
Сообщений: 64
13.07.2020, 00:50  [ТС] 3
Программа зависает(появляется крутящийся курсор мыши, при нажатии на крестик глючит несколько секунд, потом выключается и прочее), про неудачное завершение ф-и я сказал в таком же плане, т. е. имел в виду то же самое.
0
3 / 3 / 0
Регистрация: 03.06.2019
Сообщений: 64
13.07.2020, 11:01  [ТС] 4
Ахахах, прошу прощения)
Уже "решил" проблему - дело в том, что запись в файл просто длилась примерно 85 секунд! Я немного в шоке, но при использовании std::async() думаю отложить этот процесс до полной загрузки данных. А в главном потоке просто будет видно, когда запись успешно завершиться.
Хух, еще раз извиняюсь=)

P.s так что да, я зря говорил о каких-то ограничениях - просто не дожидался загрузки.
0
17 / 12 / 10
Регистрация: 05.03.2016
Сообщений: 173
13.07.2020, 12:26 5
А что, при этом, записывается в файл?

Добавлено через 1 минуту
Попробуй запустить Код вечность на разное количество времени. Успеет ли программа написать разное количество текста?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2020, 12:26
Помогаю со студенческими работами здесь

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

Запись строки в массив, сортировка, удаление и запись в файл
Нужна помощь. Из edit box к нам приходят строки мы их фильтруем. нужно строки записать в массив,...

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде
Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в...

Как разрешить запись в файл, по умолчанию запись не разрешена
Помогите! НАчинающий php - программист. Как разрешить запись в файл, по умолчанию запись не...

Запись в текстовый файл (каждая запись - отдельная строка)
Добрый вечер) Программа берет данные таблицы Access и записывает их в строчку. Проблема заключается...

Запись в 2 файла, сравнение и запись в 3-ий файл
Нуждаюсь в помощи с программами, написаны, вот надо готовить отчеты, но проблема в том, что у нас...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru