Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование4172 / Лекции / Лекция 13. Структуры и работа с файлами.doc
Скачиваний:
49
Добавлен:
12.03.2015
Размер:
105.98 Кб
Скачать

Int feof (file *f);

Функция возвращает значение “истина” (не 0), если достигнут конец файла, и значение “ложь” (0) в противном случае.

Пример 13.11. Файл f1.txt содержит последовательность целых чисел, разделенных пробелами или символом перевода строки. Вычислить сумму чисел.

#include <stdio.h>

void main()

{ FILE *f;

int c; /* очередное число */

long s=0; /* сумма */

if (f=fopen(“f1.txt”, “r”))

{ while (!feof(f))

{ fscanf(f, “%d”, &c);

s+=c;

}

printf(“Сумма=%ld\n”, s);

fclose (f);

}

else puts (“Файл f1.txt не найден”);

}

Контрольные вопросы и упражнения

1. Определите результат выполнения фрагмента программы:structA{inta,b; };structAs= {10, 20};printf(“%d”,s.a+s.b);

2. Определите результат выполнения фрагмента программы:

struct

{ char a[10]; int b;

} s = {“Москва”, 155};

printf (“%d, %s”, s.b, s.a);

3. Объявлены переменные:structA{intx;

floaty;

} s, *p= &s;

Как можно полям x, yобъявленной структурной переменной присвоить значения 10 и 5.5?

4. Определите результат выполнения фрагмента программы:

struct A

{ int x; char y[10];

} s, *t = &s;

t –>x = 2006;

strcpy (t –>y, “май”);

printf (“%s %d”, s.y, s.x);

5. Опишите структуру из 4-х полей:

- признак того, можно ли изменять другие поля (равен 1 или 0);

- массив из 100 пятибуквенных слов;

- целое число;

- вещественное число.

Опишите структурную переменную и указатель на эту переменную.

6.Опишите массив из 30 записей (структур). Каждая запись состоит из 4-х полей, описывающих часть анкетных данных спортсмена:

- фамилия, имя и отчество;

- год рождения;

- рост в метрах (например, 1.85);

- вес в кг.

7. Определите результат выполнения фрагмента программы:

int F (int a, int b)

{ if (a<b) return a+b;

return a-b;

}

void main()

{ struct

{ int n1, n2;

} s = {30, 20};

printf (“%d”, F(s.n1, s.n2));

}

8. Что представляет собой текстовый файл в MS DOS?

9. Для чего служит функция fopen()?

10. Для чего служит функция fclose()?

11. Дан текстовый файл f1.txt, состоящий из строк длиной до 80 символов. Напишите программу печати первых n строк файла. Значение n вводится с клавиатуры.

12. Дан текстовый файлf1.txt, состоящий из строк длиной до 80 символов. Напишите фрагмент ввода с клавиатуры и добавления в конец файлаnстрок. Значениеn также вводится с клавиатуры.

Контрольные задания

  1. Введите и выполните программу из примера 13.9. Создайте файл st.txt для проверки программы и снова запустите программу.

Пример входного файла st.txt:

1 16 20

-------------------------------

Анисимов А.И. 54435

Берхеев П.В. 55445

Вавилова С.Н. 45343

. . .

  1. Измените файл st.txt так, чтобы поле фамилии занимало 20 позиций, а оценок было 4. Соответственно измените программу (для удобства задайте именованные константы). Проверьте результат ее работы.

  1. Измените программу, чтобы выводился список только тех студентов, у которых

а) средний балл ниже 4;

б) средний балл выше 4 и нет двоек;

в) только хорошие и отличные оценки;

г) есть двойки;

д) все пятерки;

е) больше одной двойки.

Добавьте определение среднего балла группы.

136