|
// Чтение и запись структур
struct Client {
int Num;
char SurName[27];
char Name[21];
char SecName[21];
};
void main (void){
FILE *stream;
Client AClient, RClient;
//Открываем файл для вывода
if ((stream = fopen ("d:\\SAMPLE.DAT", "wb" )) == NULL){
printf(RUS(" Файл не открыт для записи \n"));
getch();
return 1;
}
AClient.Num = 1;
strcpy(AClient.SurName,"Petrov");
strcpy(AClient.Name, " Petr ");
strcpy(AClient.SecName, " Petrovich ");
//Запись структуры в файл
fwrite(&AClient, sizeof(AClient), 1, stream);
//Закрываем файл
fclose (stream);
//Открываем файл для чтения
if ((stream = fopen ("d:\\SAMPLE.DAT ", "rb") ) == NULL){
printf (RUS(" Файл не открыт для чтения\n "));
getch();
return 2;
}
fread(&RClient, sizeof (RClient), 1, stream);
//Закрываем файл
fclose (stream);
printf (" The structure contains: \n ");
printf ("Num = %d SurName = %s Name = %s SecName = %s",
RClient. Num, RClient. SurName, RClient. Name, RClient. SecName);
Return 0;
}
struct Client{
int Num;
char SurName[27];
char Name[21];
char SecName[21];
};
FILE *stream;
Client AClient, RClient;
//Открываем файл для вывода
if ((stream = fopen(" d:\\SAMPLE.DAT", "wb") ) == NULL)
{
printf(RUS(" Файл не открыт для записи\n "));
getch();
return 1;
}
AClient.Num = 1;
strcpy(AClient.SurName,"Petrov");
strcpy(AClient.Name, "Petr");
strcpy(AClient.SecName, "Petrovich");
//Запись структуры в файл
fwrite(&AClient, sizeof(AClient), 1, stream);
long int pos = ftell(stream);
//Выводим позицию файла и длину структуры
printf("The file pos = %d structure length = %d\n", pos, sizeof(AClient));
//Репозиционируем файл
rewind(stream);
//Открываем файл для чтения
if ((stream = fopen ("d:\\SAMPLE.DAT ", "rb")) == NULL)
{
printf (RUS("Файл не открыт для чтения\n"));
getch();
return 2;
}
fread(&RClient, sizeof (RClient), 1, stream);
//Закрываем файл
fclose (stream);
return 0;
}
// форматизованный ввод прочитанного
printf ("The structure contains: \n ");
printf ("Num = %d SurName = %s Name = %s SecName = %s",
RClient. Num, RClient. SurName, RClient. Name, RClient. SecName);
// копирование из файла в файл
// создаем файлы
FILE *fi, *fo;
if((fi = fopen("d:\\file.txt", "r")) == 0){
cout<< " Ошибка открытия входного файла "; return 1;
}
if((fo = fopen("d:\\binfile.out", "w+b")) == 0){
cout<< " Ошибка открытия выходного файла "; return 1;
}
// здесь будет строка из всех полей структуры
const int dl = 80;
char s[dl];
// создаем структуру и сразу обьявляем экземпляр mon
struct{
char type[20];
int opt, rozn;
char comm[40];
}mon;
// осуществляем построчные чтение и запись в файл структурных элементов
int kol = 0; // Количество записей в файле
while (fgets(s, dl, fi)) // читаем строку:
{
strncpy(mon.type, s, 19); // из строки 19 символов в mon.type
mon.type[19]='\0'; // это – конец строки (20 символ)
mon.opt = atoi(&s[20]); // строку цифр преобразуем в число
mon.rozn = atoi(&s[25]); //
strncpy(mon.comm,& s[30], 40);
// записываем в файл
fwrite(&mon, sizeof mon, 1, fo);
kol++;
}
fclose(fi);
int i;
cout<< RUS("\ nВведите номер записи ");
cin >>i; // Номер записи
if (i >= kol) {
cout << " Запись не существует "; return 1;
}
// Установка указателя текущей позиции файла на запись i:
fseek(fo, (sizeof mon)*i, SEEK_SET);
fread(&mon, sizeof mon, 1, fo);
cout << "mon. type " << mon.type << " opt " << mon.opt
<< " rozn " << mon.rozn << endl;
fclose(fo);
}
Дата добавления: 2015-11-04; просмотров: 24 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Поурочное планирование разработано на основе программы учебного предмета «Литературное чтение» для 1 класса основной образовательной программы начального общего образования МКОУ «Средняя школа № 2» | | | Тексты для проверки техники чтения (5 класс) |