Fclose(rstr); fclose(wstr); fclose(pstr); fclose (astr);
}
В данном примере указатели не инициализируются адресами соответствующих файлов, открытых для указанного типа операций.
Имя “prn”, используемое для вывода на печать, представляет собой стандартное имя устройства печати.
3.Чтение строк из файла и вывод их на экран
#include <stdio.h>
Void main (void)
{
char str [50];
FILE * fr, * fw;
if ((fr=fopen ("A:\\fail.ttt","r+" ))==NULL)
//открытие файла с дискеты
{
printf("Файл не открылся. \nВведите информацию с клавиатуры");
fgets (str ,49, stdin); // можно gets (str ,49);
}
Else
fgets ( str ,49, fr);// или введите строку до 49
printf ("Вывод строки: %s", str);// символов без пробела
if ((fw=fopen ("a:\\1.txt", "w+"))==NULL)
{ printf("Файл не открылся"); }
Else
{ printf("\n в файл 1.txt ");//запись в файл
fputs (str, fw); // функция записывает
Return;
}//выход из программы
// если файл не открылся, то вывод из str в файл ошибок.
fprintf (stderr, " Вывод в стандартный файл для ошибок\n%s",str);
Fclose (fr); fclose (fw);
}
Программа считывает из файла fail.ttt дискеты, вставленной в дисковод А: 49 символов или пока не встретится символ конец строки. Если файл не открылся, то предлагает ввести информацию с клавиатуры (введется 48 символов или до нажатия клавиши Ввод). Затем информация выводится в файл 1.txt на дискете или, если не удалось его открыть, в файл ошибок на экран.
Задание: Использовать варианты задания к лабораторной работе №6. Модифицировать программу, чтобы данные могли сохраняться в файле и считываться из него.
Лабораторная работа №8
Динамические переменные, работа с памятью
Операторы new и delete
Операторы new и delete обычно используются вместе. Оператор new выделяет память под переменную, а delete ее освобождает. Синтаксис данных операторов:
имя_указателя=new (имя_переменной);
Delete (имя_укзателя);
Пример:
int *n;// объявление указателя
n = new int;// выделение памяти
delete (n); // освобождение памяти
Часто операторы new и delete используются для работы с массивами, длина которых заранее неизвестна. Например, количество элементов массива определяется в программе непосредственно перед использованием массива. В этом случае синтаксис оператора new следующий:
имя_указателя = new тип_элементов_массива (количестов_элемнтов);
Пример – необходимо посчитать сумму элементов массива переменной длины. Перед вводом значений элементов массива пользователю предлагается ввести количество элементов массива, а затем сами элементы массива:
#include <stdio.h>
void main(void){
int *a;
Int k;
printf("Введите количество элементов массива:\n");
scanf("%d",&k);
a = new (int[k]); // выделение памяти под массив
for(int I=0;I<k;I++) // ввод элементов массива
scanf("%d",&a[I]);
int sum=0;
for(int I=0;I<k;I++) // расчет суммы элементов массива
sum=sum+a[I]);
printf("%d",sum); // вывод суммы элементов массива
delete(a); // освобождение памяти
}
Дата добавления: 2016-04-14; просмотров: 427;