Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Форматный обмен с файлами
С помощью функции форматного вывода можно формировать на диске текстовый файл с результатами вычислений, представленными в символьном виде. В дальнейшем этот файл может быть просмотрен на экране, распечатан на принтере, отредактирован с помощью текстового редактора. Общий вид функции форматного вывода: int fprintf (указатель_на_поток, форматная_строка, список_переменных); Использовавшаяся нами ранее функция printf () для организации вывода на экран является частным вариантом функции fprintf (). Функция printf () работает лишь со стандартным потоком stdin, который всегда связывается системой с дисплеем. Не будет ошибкой, если в программе вместо printf () написать fprintf (stdin, …). Правила использования спецификаторов форматов при записи в файлы на диске точно такие же, как и при выводе на экран. Пример 5. Составим программу, по которой будет рассчитана и записана в файл таблица квадратных корней для целых чисел от 1 до 10. Для контроля эта же таблица выводится на экран. //Таблица квадратных корней #include < stdio.h> #include < iostream.h> #include < math.h> void main() { FILE *fp; int x; fp = fopen(“test.dat”, “w”); //Вывод на экран и в файл шапки таблицы printf(“\t Таблица квадратных корней \n”); fprintf(fp, “\t Таблица квадратных корней \n ”); printf(“\t x\t\tsqrt(x) \n”); fprintf(fp, “\t x\t\tsqrt(x) \n ”); \\Вычисление и вывод таблицы квадратных корней \\на экран и в файл for (x = 1; x< =10; x++) { printf(“\t%f\t%f\n”, float(x), sqrt(float(x))); fprintf(fp, “\t%f\t%f\n”, float(x), sqrt(float(x))); } fclose(fp); } Форматный ввод из текстового файла осуществляется с помощью функции fscanf (), общий формат которой выглядит следующим образом: int fscanf(указатель_на_поток, форматная_строка, список_адресов_переменных); Данной функцией удобно пользоваться в тех случаях, когда исходные данные заранее подготавливаются в текстовом файле. В следующем примере числовые данные из файла test.dat, полученного в результате выполнения предыдущей программы, вводятся в числовые массивы x и y. Для контроля значения элементов массивов выводятся на экран. Предварительно с помощью текстового редактора в файле test.dat удаляются две первые строки с заголовками. В результате в файле останутся только числа. Пример 6. \\Ввод чисел из файла #include < stdio.h> #include < iostream.h> #include < math.h> void main() { FILE *fp; int i; float x [10], y [10]; fp = fopen(“test.dat”, ”r”); for (i = 0; i< 10; i++) { fscanf(fp, “%f%f”, & x[i], & y[i]); printf(“%f %f\n”, x[i], y[i]); } fclose(fp); } Порядок выполнения работы 1. Изучить теоретические сведения. 2. Выполнить задание.
|