Break;
Do
Int ocenka;
Float sr_ball;
Int ocenka;
Float sr_ball;
1 2 3 4 5 6 7 8 9 10 11 12 4 3 2 1
I++;
4 3 2 1
9 10 11 12
5 6 7 8
1 2 3 4
1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0
I++;
Fscanf(указатель на файл, формат ввода, список ввода);
9 10 11 12
5 6 7 8
1 2 3 4
Int i, j;
9 10 11 12
5 6 7 8
1 2 3 4
Fprintf(указатель на файл, формат вывода, список вывода);
Пример 1: записать в файл my_file.txt построчно значения элементов следующего массива mass34 :
Программа:
const int n=3;
const int m=4;
const int k=m*m;
int mass[n][m]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int vector[k];
FILE *f_text;
f_text=fopen(“D:/User/my_file.txt”, “w”); // файл открыт
// для записи
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
fprintf(f_text, “%5d”, mass[i][j]);
fprintf(f_text, “\n”);
}
fclose(f_text); //после записифайл обязательно закрыть!
Структура файла my_file.txt:
Внимание! При записи чисел в текстовый файл оставлять между ними хотя бы по одному пробелу!
Перед чтением данных из файла его необходимо открыть для чтения:
f=fopen(“путь”, “r”);
Если файл не найден, то значение указателя f будет равно NULL.
Форматированное чтение (ввод) из файла осуществляется функцией:
Прочитаем созданный файл и запишем числа в вектор vector16:
f_text=fopen(“D:/User/my_file.txt”, “r”); // файл открыт
// для чтения
for (i=0; i<k; i++) // обнуляем вектор
vector[i]=0;
i=0; // индекс очередного элемента
while (!feof(f_text)) // пока не конец файла
{
fscanf(f_text, “%d”, &j); // читаем из него данные
vector[i]=j; // и записываем в вектор
}
printf("\nVector_1:\n");
for (i=0; i<k; i++)
printf("%4d", vector[i]);
printf("\n");
На экран будет выведено:
Vector_1:
Добавим в последнюю строку файла последовательность чисел 4, 3, 2, 1:
f_text=fopen(“D:/User/my_file.txt”, “a”); // файл открыт
// для добавления
for (i=4; i>0; i--)
fprintf(f_text, “%5d”, i);
fprintf(f_text, “\n”);
fclose(f_text); //после записифайл обязательно закрыть!
Структура файла my_file.txt:
Снова прочитаем созданный файл и запишем числа в вектор vector16:
f_text=fopen(“D:/User/my_file.txt”, “r”); // файл открыт
// для чтения
for (i=0; i<k; i++) // обнуляем вектор
vector[i]=0;
i=0; // индекс очередного элемента
while (!feof(f_text)) // пока не конец файла
{
fscanf(f_text, “%d”, &j); // читаем из него данные
vector[i]=j; // и записываем в вектор
}
printf("\nVector_2:\n");
for (i=0; i<k; i++)
printf("%4d", vector[i]);
printf("\n");
На экран будет выведено:
Vector_2:
Пример 3: создать базу данных на текстовом файле my_base.txt - в каждой его строке записать следующие данные о студентах:
группа – строка длиною 10 символов,
фамилия - строка длиною 20 символов,
имя - строка длиною 10 символов,
ср. балл сессии – вещественное число,
оценка по информатике – целое число.
Опишем исходные данные:
char gruppa[10];
char fam[20];
char name[10];
Создадим текстовый файл my_base.txt и откроем его для записи:
FILE *f_base; // указатель на создаваемый файл
f_base=fopen(“D:/User/my_base.txt”, “w”);
Данные в базу будем вводить циклом с постусловием. Интерфейс программы:
Gruppa: IS-09
Familija: Pupkin
Imja: Vasilij
Sr. ball: 3.14
Ocenka: 3
Gruppa: IS-09
Familija: Ivanov
Imja: Ivan
Sr. ball: 4.09
Ocenka: 5
Gruppa: 0
Запросы продолжаются до тех пор, пока вместо номера группы введем цифру ноль – это терминатор (прерыватель цикла ввода).
После ввода данных об очередном студенте записываем их в файл форматным способом, указывая длину каждого записываемого данного:
fprintf(f_base, “%10s%20s%10s%5.2f%2d\n”, gruppa, fam, name, sr_ball, ozenka);
Программа:
FILE *f_base; // указатель на создаваемый файл
char gruppa_1[10];
char fam_1[20];
char name_1[10];
f_base=fopen("D:/User/my_base.txt", "w");
{
printf("\n gruppa:");
scanf("%s", gruppa);
if (gruppa[0]=='0') // если ноль – выход из цикла ввода
printf("\n familija:");
scanf("%s", fam);
printf("\n imja:");
scanf("%s", name);
printf("\n sr. ball:");
scanf("%f", &sr_ball);
printf("\n ocenka:");
scanf("%d", &ocenka);
fprintf(f_base, "%10s%20s%10s%7.2f%5d\n", gruppa, fam, name, sr_ball, ocenka);
}
while (1); // псевдобесконечный цикл
fclose(f_base); //после записи файл обязательнозакрыть!
Структура файла: