Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Опубликован: 07.03.2015 | Уровень: для всех | Доступ: свободно | ВУЗ: Компания ALT Linux
Лекция 7:
Организация ввода-вывода в C++
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 );