Опубликован: 07.03.2015 | Уровень: для всех | Доступ: свободно | ВУЗ: Компания ALT Linux
Лекция 7:

Организация ввода-вывода в C++

< Лекция 6 || Лекция 7: 12345 || Лекция 8 >

7.4 Функции fscanf() и fprintf()

Чтение и запись данных в файл можно выполнять с помощью функций fscanf() и fprintf(). Эти функции подобны функциям scanf() и printf(), описанным в п. 2.9, за тем исключением, что работают не с клавиатурой и экраном, а с файлами. Функции имеют следующие прототипы.

Функция чтения

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

Функция записи

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

Далее приведён фрагмент программного кода, который демонстрирует пример записи информации в файл my.txt.

char fio [ 30 ]= "Махарадзе В.";
int a=5, b=5, c =4;
float s= ( float ) ( a+b+c ) / 3;
FILE  *f;
f=fopen ( " my.txt ", " w " );
fprintf ( f, "Оценки студента % s \n ", fio );
fprintf ( f, "математика % d, физика % d, химия % d \n ", a, b, c );
fprintf ( f, "Средний балл = %.2 f \n ", s );
fprintf ( f, " \n " );
fclose ( f );

В результате будет сформирован текстовый файл:

Оценки студента Махарадзе В.
математика 5, физика 5, химия 4
Средний балл = 4.67

Рассмотрим пример чтения данных из файла. Пусть в файле test.txt хранится информация:

1 Иванов Пётр 170 78.1
2 Петров Иван 180 89.6
3 Карпов Борис 167 56.7

Тогда с помощью следующих команд можно считать информацию из файла и вывести её на экран.

int i, nom;
float Ves;
int Rost;
char fio [ 15 ], name [ 15 ];
FILE * f;
f=fopen ( " test.txt ", " r " );
for ( i =0; i <3; i++)
{
	//Чтение из файла
	fscanf ( f, " % d % s % s % d % f \n ",&nom, &fio,&name,&Rost,&Ves );
	//Вывод на экран
	printf ( " % d % s % s % d %.2 f \n ",nom, fio, name, Rost, Ves );
}
fclose ( f );
< Лекция 6 || Лекция 7: 12345 || Лекция 8 >
Сергей Радыгин
Сергей Радыгин

Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке?

Тип приложения - не Qt,

Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.

 

Юрий Герко
Юрий Герко

Кому удалось собрать пример из раздела 13.2 Компоновка (Layouts)? Если создавать проект по изложенному алгоритму, автоматически не создается  файл mainwindow.cpp. Если создавать этот файл вручную и добавлять в проект, сборка не получается - компилятор сообщает об отсутствии класса MainWindow. Как правильно выполнить пример?