Объясните способ решения задачи (таблицы) - C (СИ)
Формулировка задачи:
В файле PROG содержится текст программы на языке Си. Файл разделен на
строки произвольной длины ( но не более 256 ). Используя определения и
описания, построить таблицу констант. Элемент таблицы содержит: значение константы, имя
константы, тип константы, размер памяти. Организовать таблицу как неупорядоченную
Вопрос в следующем, как искать эти константы?
Как я понимаю если строка начинается со слова const, то далее следует константа.
Тоесть
как считать эти константы и записать соответствующие значения в соответствующие переменные type, size, value, name?
и как узнать размер, который занимает константа?
Листинг программы
- какой-то код
- const int a = 5;
- какой-то код
- const int c = 7;
- какой-то код
Решение задачи: «Объясните способ решения задачи (таблицы)»
textual
Листинг программы
- while (fscanf(fp, "%s", &s)!=EOF){
- if (!strcmp(s, "const")){
- fscanf(fp, "%s", &type);
- fscanf(fp, "%s", &name);
- fscanf(fp, "%s", &no);
- fscanf(fp, "%s", &value);
- }
- }
Объяснение кода листинга программы
- В цикле while происходит чтение из файла fp до тех пор, пока не будет достигнут конец файла (EOF).
- Каждый раз, когда выполняется чтение, в переменную s записывается строка.
- Если s содержит
const
, то выполняется блок кода внутри if. - В этом блоке кода выполняется чтение из файла fp в переменные type, name и no.
- Значение переменной value считывается в следующем чтении.
- Если s не содержит
const
, то выполняется следующее чтение из файла. - Чтение из файла fp продолжается до тех пор, пока не будет достигнут конец файла (EOF).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д