Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
1

Не всегда данные записываются в результирующий файл

21.01.2012, 23:47. Показов 1410. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа. Суть ее не важна, важно лишь то, что читает данные, затем записывает результаты
Запись идет в строках 61-64

Проблема: не всегда данные записываются в результирующий файл, бред какой-то
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <vector>
#include <queue>
#include <iostream>
#include <vector>
#include <fstream>
#include <cstdlib>
 
#define file_in "test.in"
#define file_out "test.out"
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    std::vector<std::vector<unsigned int> > g; 
    unsigned int count, s;
    std::fstream file(file_in, std::ios::in);
 
    if (file.fail())
    {
        std::cerr << "Файл не найден!" << std::endl;
        system("Pause");
        return EXIT_FAILURE;
    }
 
    file >> count;
    g.resize(count);
    for (unsigned int i = 0; i < count; ++i)
    {
        g[i].resize(count);
        for (unsigned int j = 0; j < count; ++j)
            file >> g[i][j];
    }
    file >> s;
    file.close();
 
    file.open(file_out, std::ios::out);
 
    std::queue<unsigned int> q;
    q.push(s);
 
    std::vector<bool> used (g.size());
    std::vector<int> p(g.size(), -1);
    used[s] = true;
 
    while (!q.empty())
    {
        int v = q.front();
        for (unsigned int i = 0; i < g[v].size(); ++i) 
        {
            if (!used[i] && g[v][i]) 
            {
                used[i] = true;
                q.push(i);
                p[i] = v; // parent;
            }
        }
        q.pop();
    }
 
    unsigned int result_size = p.size() - std::count(p.begin(), p.end(), -1);
    file << result_size << std::endl;
    for (unsigned int i = 0; i < count; i++)
        if (p[i] >= 0)
            file << i << " ";
    file.close();
 
    std::cout << "Задача решена" << std::endl;
    system("pause");
    return 0;
}
во вложении 2 входных файла
при скармирвании файла test2.in прога записывает результат в файл, при test.in - нет.

как это вообще возможно?
Вложения
Тип файла: rar test.rar (390 байт, 18 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2012, 23:47
Ответы с готовыми решениями:

Данные не всегда записываются в бд
Доброго времени суток. Столкнулся со странной проблемой: скрипт не всегда записывает значение...

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

Файл: Не могу понять, почему данные не записываются в файл, он остается пустым.
Здравствуйте , помогите пожалуйста , с записью данных в файл. #include &quot;stdafx.h&quot;...

Не записываются данные в файл
Мне нужно чтобы результат записывался в файл вывода,я вроде все сделал верно но почему-то они не...

13
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
21.01.2012, 23:55 2
Нормально всё вроде, содержание test.out не проверял
0
Эксперт С++
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.01.2012, 00:00 3
sandye51, у меня выводит ответ в обоих случаях.

Добавлено через 1 минуту
test.in:
Код
64
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
test2.in:
Код
4
0 1 3 4
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
22.01.2012, 00:04  [ТС] 4
silent_1991, пробовал в 2008 студии и в devc++ - не всегда
а в 2010 в обоих случаях выводит
0
Эксперт С++
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.01.2012, 00:05 5
sandye51, mingw g++ 4.6.2
1
kravam
22.01.2012, 00:10
  #6

Не по теме:

Цитата Сообщение от sandye51 Посмотреть сообщение
devc++
Там компилятор старый, 4.5.0, советую обновить

0
sandye51
22.01.2012, 00:33  [ТС]
  #7

Не по теме:

kravam, но ноут сестры сдавить студию чтобы написать пару прог - больно долго

0
silent_1991
22.01.2012, 00:36
  #8

Не по теме:

sandye51, скачай у niXman'а в подписи последний мингв.

1
kravam
22.01.2012, 00:41
  #9

Не по теме:

Я предлагаю такой выход. Поскольку DevCpp IDE хорошая, качай её без компилятора, потом ставь современный опробированный компилятор, напрмер этот, а потом зайди в тему, что у меня в подписи.

1
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
22.01.2012, 00:48  [ТС] 10
ну а все-аки, почему не работает на старых компиляторах даже?
баг?
0
Эксперт С++
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.01.2012, 00:55 11
sandye51, начнём с простого: попробуй создать два потока, отдельно для входного файла и отдельно для выходного.
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
22.01.2012, 12:24  [ТС] 12
silent_1991, ну такой-то вариант работает)
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
22.01.2012, 13:16 13
был такой баг вроде в стандартной библиотеке в более ранних версиях gcc, в других реализациях(msvc, например) может он тоже был(точно не знаю)
0
Эксперт С++
5057 / 3117 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.01.2012, 14:51 14
sandye51, ну, я предполагал библиотечный баг, а retmas подвертил мои предположения.
0
22.01.2012, 14:51
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2012, 14:51
Помогаю со студенческими работами здесь

Не записываются данные в файл
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include...

Данные не записываются в файл
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? В ходе несложных манипуляций и...

Не записываются данные в файл
Проблема в теме. Данные просто не попадают в файл. // Rezult. Lab6.cpp : Этот файл содержит...

Не записываются данные в файл
Не записываются переменная в файл вот код: void __fastcall TForm1::Button7Click(TObject *Sender)...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как запретить подсветку выделенного текста с помощью CSS
InfoMaster 20.01.2025
Подсветка текста при выделении является стандартным поведением браузера, которое не всегда соответствует дизайнерским решениям или функциональным требованиям веб-приложения. Выделение текста может. . .
Как выполнить другую программу или системную команду из Python
InfoMaster 20.01.2025
Python предоставляет мощные инструменты для выполнения системных команд и управления внешними процессами, что делает его идеальным выбором для автоматизации различных задач системного. . .
Как узнать директорию bash-скрипта из самого bash-скрипта
InfoMaster 20.01.2025
При разработке bash-скриптов одной из важных задач является определение директории, в которой находится исполняемый скрипт. Это критически важно для корректной работы с файлами, загрузки конфигураций. . .
В чем разница между let и var в JavaScript
InfoMaster 20.01.2025
JavaScript прошел длинный путь эволюции с момента своего создания в 1995 году. Одним из важнейших аспектов развития языка стало совершенствование механизмов объявления и управления переменными. . . .
Эффективная работа со строками в Go
InfoMaster 20.01.2025
Язык программирования Go предлагает уникальный подход к работе со строками, который существенно отличается от многих других языков программирования. В Go строки представляют собой неизменяемые. . .
Как проверить, что отображение (map) содержит ключ в Go
InfoMaster 20.01.2025
Отображения (maps) в языке программирования Go представляют собой мощные структуры данных, которые позволяют хранить пары ключ-значение и обеспечивают быстрый доступ к данным по уникальным. . .
Как организовать домашнее хранилище фильмов с общим доступом для всей семьи
InfoMaster 20.01.2025
Преимущества домашнего медиасервера В современном мире, где цифровой контент стал неотъемлемой частью нашей жизни, организация домашнего медиасервера становится все более актуальной задачей. . . .
Перспективы развития жестких дисков: есть ли у них будущее?
InfoMaster 20.01.2025
История и эволюция жестких дисков История развития жестких дисков начинается в 1956 году, когда компания IBM представила первое устройство для хранения данных на магнитных пластинах - IBM 350. . .
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru