Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
#1

Считывание из файла в структуру - C++

07.10.2016, 10:01. Просмотров 499. Ответов 25
Метки нет (Все метки)

Добрый день, столкнулся с такой проблемой. Есть файл со строками из 1 и 0
Пример:
1111110
1111000
1001011
...

Все строки одного размера

Нужно каждую строку считать в отдельное "слово" записанное в структуре
C++
1
2
3
4
struct slova
{
char s1,s2,s3; //...
};
Где "слово" s1 это первая строка (без разделителей \n)


В дальнейшем эти слова будут анализироваться(каждый разряд 1 или 0 соответствует своей команде), так что к каждому разряду должен быть доступ к примеру s1[5].

Пробовал считывать getline, но он считывает только первую строку. Так же пробовал с read, но в некоторых словах вышел "мусор", а в первом слове было несколько строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2016, 10:01     Считывание из файла в структуру
Посмотрите здесь:

Считывание информации из файла в структуру - C++
Добрый день! Помогите, пожалуйста, с решением задачи. Дан символьный файл f, содержащий сведения о студентах, записанные по...

Считывание данных из файла в структуру - C++
из файла нужно считать данные и записать их в структуру. данные из файла: Петров П.П. С++ для чайников 2000 Программирование ...

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

Считывание всей строки из файла в структуру - C++
Привет. Есть программа, считывающая из файла некоторые данные про рабочих и вывод их на экран с использованием структуры. Проблема...

Считывание из бинарного файла в структуру с последующим выводом - C++
В бинарном файле храниться инфа: Имя_пользователя дата_подключения номер Имя_пользователя дата_подключения номер и т.д. Есть...

Считывание с файла - C++
Здравствуйте. Нужна помощь в написании программы: Дана непустая последовательность слов разделенных пробельными символами, расположенных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
07.10.2016, 10:05     Считывание из файла в структуру #2
getline() твоя функция. А вот про структуру не понятно, там не строки, а символы. Или надо преобразовать в число и сохранить в char?
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
07.10.2016, 10:24  [ТС]     Считывание из файла в структуру #3
По хорошему s1 это число в двоичной с/с, но как я понял лучше записать его массивом из 1 и 0
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
07.10.2016, 11:13     Считывание из файла в структуру #4
А сколько этих слов-то? Фиксированное количество? У тебя всего 3 элемента в структуре.
Используй bitset вместо char по такому принципу:
C++
1
2
3
4
bitset<8> s1;
 
ifstream ifs("data.txt");
ifs >> s1;
Потом к битам можно обращаться как к массиву: s1[i].
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
07.10.2016, 11:28  [ТС]     Считывание из файла в структуру #5
Всего 15 слов, в каждом по 20 1 или 0
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
07.10.2016, 13:03     Считывание из файла в структуру #6
А почему показано по 8 бит?
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
07.10.2016, 13:35  [ТС]     Считывание из файла в структуру #7
Это был просто пример, с 20 тоже работает спасибо за помощь.
Еще один вопрос, а можно ли каждое "слово" записывать в битовое поле
C++
1
2
3
4
5
6
7
struct s1
{ 
тип r1:3;
тип r2:1;
Тип : 5;
//...
};
При этом есть безымянные(резерв) и длинна разная. Т.е r1 это 111. И какой у них тогда должен быть тип?
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
07.10.2016, 13:39     Считывание из файла в структуру #8
Для 20 надо bitset<20>.
Цитата Сообщение от salwlen Посмотреть сообщение
а можно ли каждое "слово" записывать в битовое поле
Как-то понятнее объясни что хочешь. Вроде бы речь об отдельных битах шла. Теперь уже по три?
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
07.10.2016, 13:48  [ТС]     Считывание из файла в структуру #9
Слово состоит из 20 бит при этом первые 3 бита называем r1, следующий бит это r2, следующие 5 бит это r3 итд
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
07.10.2016, 16:46     Считывание из файла в структуру #10
C++
1
2
3
4
5
6
7
8
9
10
union u
{
    struct
    {
        unsigned r1: 3;
        unsigned r2: 1;
        unsigned r3: 5;
    };
    unsigned dword;
};
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
11.10.2016, 11:37  [ТС]     Считывание из файла в структуру #11
Решил ввод/вывод перенести из int main () в функцию и столкнулся с рядом проблем. Когда я считывал все в int main() я объявлял структуры
C++
1
2
3
4
5
6
int main()
{
struct IN inn
struct OUT out
 
}
И все работало нормально.
Как будет правильнее объявлять их с функцией?
Что должна возвращать функция?
Нужно ли использовать указатели на структуру?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct IN
{
//...
};
struct OUT
{
//...
};
int f(IN,OUT)
{
//считывание файлов в структуры IN и OUT
}
int main()
{
int f(IN,OUT);
//...
return 0;
}
Структур IN и OUT несколько и все используются в функции
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,259
11.10.2016, 12:36     Считывание из файла в структуру #12
Если функция должна изменять переданные структуры, то используй ссылки.
C++
1
void f(IN &in, OUT &out)
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
11.10.2016, 15:40  [ТС]     Считывание из файла в структуру #13
У меня в int main() помимо функции считывания используются переменные из структур, и
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void f(IN &inn, OUT &out)
{
//считывание
}
int main()
{
struct IN inn;
struct OUT out;
void f(IN &inn, OUT &out);
//...
//операции с переменными структур
 
return 0;
}
компилятор жалуется на строки с операциями: использована неинициализированная локальная переменная inn
nd2
2130 / 1702 / 601
Регистрация: 29.01.2016
Сообщений: 5,493
11.10.2016, 15:59     Считывание из файла в структуру #14
Цитата Сообщение от salwlen Посмотреть сообщение
C++
1
2
3
struct IN inn;
struct OUT out;
void f(IN &inn, OUT &out);
Функция так вызывается:
C++
1
2
3
struct IN inn;
struct OUT out;
f(inn, out);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2016, 16:14     Считывание из файла в структуру
Еще ссылки по теме:

Считывание из файла - C++
Создайте конструктор, который считывает координаты центра и радиус из заранее подготовленного текстового файла на магнитном диске и...

Считывание из файла - C++
//test.cpp #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; void main() { ifstream input(&quot;input.txt&quot;); ...

Считывание из файла - C++
Нужна помощь, уже не знаю, что делать. Проблема: Имеется функция для добавления хешированного логина и пароля в двоичный файл. ...

Считывание из файла - C++
Нужно считать из файла данные (по слову). Считывается только по символу. Помогите, пожалуйста, исправить. Может нужно перегрузить &gt;&gt; , если...


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

Или воспользуйтесь поиском по форуму:
salwlen
1 / 1 / 0
Регистрация: 27.12.2012
Сообщений: 41
11.10.2016, 16:14  [ТС]     Считывание из файла в структуру #15
Поправил, но проблема не исчезла, причем ошибка не во всех переменных, там где используется bitset все нормально, а вот в структурах где double жалуется на неиспользованную локальную переменную
Yandex
Объявления
11.10.2016, 16:14     Считывание из файла в структуру
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru