Ввод структуры в файл - 102 ошибки и все однотипные - C (СИ)
Формулировка задачи:
в чем ошибка?
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
struct PO
{
char name[20];
char year[10];
int cost;
double volume;
char os[20];
char language [30];
};
void EnterNameFile(char *name);
void InputOneStruct(FILE *f);
void OutputOneStruct(PO po);
void CreateFile(FILE*);
int main()
{
FILE *fp, *ft;
char name[10], namet[10];
int Menu;
do
{
puts("Menu\n");
puts("-------------\n");
puts("choice regime work the file :");
puts(" 1 - enter name file,");
puts(" 2 - create file,");
puts(" 3 - add information to file,");
puts(" 4 - correct information in file,");
puts(" 5 - delite information from file,");
puts(" 6 - found information in file,");
puts(" 7 - sorting information in file,");
puts(" 8 - viewing file,");
puts(" 9 - writen information in file,");
puts(" 10 - reading information in file,");
puts(" 0 - exit.");
puts("vash vibor\n");
scanf("%d",&Menu);
}while (Menu<0 || Menu>10); // цикл по меню
switch (Menu)
{
case 1:
EnterNameFile(name);
break;
case 2:
if(!(f=fopen(name,"wp")))
printf("mastake opened file %s\n",name);
CreateFile(f);
fclose(f);
break;
case 0:
return;break;
}
getch();
}
void EnterNameFile(char *name)
{
puts("\nenter name file");
fflush(stdin);
gets(name);
}
void InputOneStruct(FILE *f)
{
PO po;
puts("\nenter name PO ");
fflush(stdin);
gets(po.name);
puts("\nenter years ");
fflush(stdin);
gets(po.year);
puts("\nenter cost");
gets(po.cost);
puts("\nenter volume");
gets(po.volume);
puts("\nenter os");
fflush(stdin);
gets(po.os);
puts("\nenter language");
fflush(stdin);
gets(po.language);
fwrite(&po,sizeof(PO),1,f);
}
void OutputOneStruct(PO po)
{
printf("%10s,%4s,%7d,%6.1lf,%8s,%10s",
po.year,po.year,po.cost,po.volume,po.os,po.language);
}
void CreateFile(FILE *f)
{
int count,i;
puts("enter quantity notes in created file");
scanf("%d", &count);
for(i=0;i<count;i++)
{
printf("tnter notes %d ", i+1);
InputOneStruct(f);
}
}Решение задачи: «Ввод структуры в файл - 102 ошибки и все однотипные»
textual
Листинг программы
typedef struct {
....
} PO;
Объяснение кода листинга программы
- Создается структура данных типа PO.
- Создается файл для записи данных.
- Открывается файл для записи данных.
- В цикле записываются данные в файл.
- Закрывается файл.