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

Неправильное чтение из файла

03.03.2017, 15:01. Показов 1270. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется файл, в нем записано что-то вроде {1 2 3}{2 1 3}{3 1 2}
Моя задача считать все цифры, за исключением первой внутри {} и определенным образом занести в вектор(не суть важна). На выводе у меня все заполнено нулями. Где-то ошибка в реализации чтения, может сможете помочь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ifstream in("input.txt");
    int i = 0;
    int countSize = 0;
    char simb = 'n';
int flag = 1;
    i = 0;
    while (simb=in.get()!=EOF) {
        //F.getline(simb, 1);
        if (simb != '{' && simb != '}' && simb != ' ' && flag == 0) {
            if (flag == 0) {
                int sim = int(simb) - 48;
                SMatrix[i][sim] = 1;
                SMatrix[sim][i] = 1;
            }           
        }
        else { if (flag == 1) flag = 0; }
        if (simb == '}') {
            flag = 1;
            i++;
        }       
        }
    in.close();
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2017, 15:01
Ответы с готовыми решениями:

Неправильное чтение файла
Пишу программу, которая шифрует текст шифром Цезаря из файла и записывает его в этот же или в...

Неправильное чтение бинарного файла
программа должна по идее вывести 99.. мне так казалось.. #include <iostream> #include...

Неправильное удаление строки из файла
Здраствуйте! Относительно недавно изучаю C++, и знакомлюсь с работой с файлами. Решил сделать...

Чтение doc неправильное
Пишу программу, которая должна открывать Файлы и считывать из них данные. Заметила, что все...

9
7525 / 6391 / 2913
Регистрация: 14.04.2014
Сообщений: 27,845
03.03.2017, 15:26 2
Лучший ответ Сообщение было отмечено 25th_July как решение

Решение

Для начала в 7-й строке присваивание возьми в скобки.
1
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
03.03.2017, 15:54 3
Цитата Сообщение от 25th_July Посмотреть сообщение
i = 0;
- зачем 2 раза i обнулять.В 6 строке.

Добавлено через 24 минуты
Цитата Сообщение от 25th_July Посмотреть сообщение
flag == 0) {
- может из-за этого. Сначала Вы приcвоили flag = 1, а теперь сравниваете и программа туда никогда не заходит.
0
0 / 0 / 1
Регистрация: 01.03.2017
Сообщений: 32
03.03.2017, 16:00  [ТС] 4
Цитата Сообщение от DemolitionMan Посмотреть сообщение
- зачем 2 раза i обнулять.В 6 строке.

Добавлено через 24 минуты
- может из-за этого. Сначала Вы приcвоили flag = 1, а теперь сравниваете и программа туда никогда не заходит.
можно увидеть else, где флаг изменяется с 1 на 0
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
03.03.2017, 16:03 5
Нет счетчика символов,
Цитата Сообщение от 25th_July Посмотреть сообщение
C++
1
2
SMatrix[i][sim] = 1;
SMatrix[sim][i] = 1;
- вот это бред полнейший, Вы читаете номер числа массива из файла и используете его как номер строки и столбца, тем более, что это 2 раза пишется. Делайте другую программу, с более легкой архитектурой, чтобы более легко читалась.
0
0 / 0 / 1
Регистрация: 01.03.2017
Сообщений: 32
03.03.2017, 16:09  [ТС] 6
Цитата Сообщение от DemolitionMan Посмотреть сообщение
Нет счетчика символов,
- вот это бред полнейший, Вы читаете номер числа массива из файла и используете его как номер строки и столбца, тем более, что это 2 раза пишется. Делайте другую программу, с более легкой архитектурой, чтобы более легко читалась.
Это преобразование списка смежности в матрицу смежности, которое полностью логично. Просто список смежности по заданию имеет убогую структуру в файле.
Такая запись {0 1 2} означает, что вершина 0 смежна с 1 и 2. Соответственно 1 и 2 также связаны с 0. Собственно поэтому и дважды присвоение.
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
03.03.2017, 16:15 7
Я не понял, ее что не нужно читать в матрицу 3x3?
0
0 / 0 / 1
Регистрация: 01.03.2017
Сообщений: 32
03.03.2017, 16:19  [ТС] 8
Цитата Сообщение от DemolitionMan Посмотреть сообщение
Я не понял, ее что не нужно читать в матрицу 3x3?
Матрица смежности n*n элементов, где n - количество вершин в графе. Каждая запись в файле такого рода {* 1 2 3} означает, что вершина с номером * смежна с вершинами с номерами идущими до }. Так что просто прохожусь по файлу и заношу данные в матрицу.
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
03.03.2017, 16:27 9
Что, все работает?
0
0 / 0 / 1
Регистрация: 01.03.2017
Сообщений: 32
03.03.2017, 16:34  [ТС] 10
Цитата Сообщение от DemolitionMan Посмотреть сообщение
Что, все работает?
именно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2017, 16:34
Помогаю со студенческими работами здесь

Неправильное сохранение файла
Здравствуйте. На сервере лежит файл Файл.txt его структура: ...

Неправильное чтение из файла
я записываю список в файл,но после перезапуска программы у меня происходит чтение из файла и...

Неправильное чтение из файла
Есть у меня решение, которое содержит 2 проекта При нажатии на кнопку одного проекта, вылазит...

Неправильное чтение xml файла
Написал маленькую программку, читаю из xml файла <?xml version="1.0" encoding="UTF-8"?> ...

Неправильное чтение из картинки файла (стеганография с файлами)
Доброго времени суток! Я удачно реализовал запись текста в картинку, но с записью файла не совсем...

Тест. подсчёт бала. неправильное чтение с файла. (описание внутри)
В общем делаю курсач, тест по всемирной истории. И у меня возникло несколько проблем: -подсчёт...


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

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

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