2016-12-29 2 views
-4

enter image description hereC: Как читать переменные из файла

Что такое лучший способ создать функцию, которая считывает каждую часть файла, как описано в следующей картине, и сохраняет его в массивы и целые числа, он должен прочитать и сохраните вторую часть (выше word_count): слово; ориентации; ряд; цв; точки; jogador, пока не будет прочитано число (Turn).

+0

Добро пожаловать в переполнение стека! Покажите свои исследования/отладки. Сначала прочитайте страницу [Ask]. –

+1

Прочитайте строку с 'fgets()'. Затем используйте 'sscanf()' для его анализа в соответствии с соответствующим форматом. – Barmar

+1

Вам нужно показать нам, что вы пробовали. Это помогает нам оценить то, что вы знаете, чтобы мы могли дать полезный ответ. Например, если вы еще не знаете о структурах, предоставление решения с использованием структур вам не поможет. Если вы не знаете о распределении динамической памяти, показ решения с использованием 'malloc()' et al вам не поможет. Вам нужно показать, что вы попробовали, чтобы мы могли сказать, что на самом деле вам поможет. Пожалуйста, прочитайте о том, как создать MCVE ([MCVE]). Благодаря! –

ответ

-1

Начните с создания 3 структур. Один для людей. Один для слов и один для агрегирования полной структуры. В-третьих, вам нужно будет решить, какие массивы могут быть заданы во время компиляции и которые должны использовать malloc или calloc для распределения пространства для людей или текстовых структур. Затем напишите функцию, чтобы заполнить человека из строки одной строки и одну, чтобы заполнить слово из строки одной строки. Вы можете использовать strchr для поиска точек с запятой или для меньшей долговечности ошибки, которую вы можете посмотреть на sscanf. Наконец, напишите свою функцию загрузки, чтобы прочитать строку строки, определяющую изменения «mode» (strchr (line, ';') == -1) и вызов соответствующей функции преобразования. Затем вы можете вернуть агрегатную структуру как указатель на структуру malloc'ed. Не забудьте написать функцию, которая принимает этот указатель, чтобы избавиться от всего, что вы malloc'ed, чтобы вызывающий пользователь не должен знать ваши данные о размещении и может просто сказать: «Получите меня от этого файла», а затем « выбросьте это ». К сожалению, C отличается от Java или C# тем, что тяжелый подъем не встроен или не покрыт обширными библиотеками. Вам нужно найти библиотеки или написать код низкого уровня самостоятельно. Удачи вам в проекте.

Смежные вопросы