Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Fprintf(указатель на файл, формат вывода, список вывода);




Пример 1: записать в файл my_file.txt построчно значения элементов следующего массива mass34:

1 2 3 4

5 6 7 8

9 10 11 12

Программа

const int n=3;

const int m=4;

const int k=m*m;

Int i, j;

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:

1 2 3 4

5 6 7 8

9 10 11 12

Внимание! При записи чисел в текстовый файл оставлять между ними хотя бы по одному пробелу!

Перед чтением данных из файла его необходимо открыть для чтения:

f=fopen(“путь”, “r”);

Если файл не найден, то значение указателя f будет равно NULL.

Форматированное чтение (ввод) из файла осуществляется функцией:

Fscanf(указатель на файл, формат ввода, список ввода);

Прочитаем созданный файл и запишем числа в вектор 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; // и записываем в вектор

i++;

}

printf("\nVector_1:\n");

for (i=0; i<k; i++)

printf("%4d", vector[i]);

printf("\n");

На экран будет выведено:

Vector_1:

1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0

Добавим в последнюю строку файла последовательность чисел 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:

1 2 3 4

5 6 7 8

9 10 11 12

4 3 2 1

Снова прочитаем созданный файл и запишем числа в вектор 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; // и записываем в вектор

i++;

}

printf("\nVector_2:\n");

for (i=0; i<k; i++)

printf("%4d", vector[i]);

printf("\n");

На экран будет выведено:

Vector_2:

1 2 3 4 5 6 7 8 9 10 11 12 4 3 2 1

Пример 3: создать базу данных на текстовом файле my_base.txt – в каждой его строке записать следующие данные о студентах:

группастрока длиной 10 символов,

фамилиястрока длиной 20 символов,

имястрока длиной 10 символов,

средний балл сессии – вещественное число,

оценка по информатике – целое число.

Опишем исходные данные:

char gruppa[10];

char fam[20];

char name[10];

Float sr_ball;

Int ocenka;

Создадим текстовый файл 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];

Float sr_ball;

Int ocenka;

f_base=fopen("D:/User/my_base.txt", "w");

Do

{

printf("\n gruppa:");

scanf("%s", gruppa);

if (gruppa[0]=='0') // если ноль – выход из цикла ввода

Break;

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); // после записи файл обязательно закрыть!

 

Структура файла:






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных