Драстуйте!Вот написал программ, но она почему то засисает после выполнения закрытия файла(fclose(f1);)!Почему??У меня ище такой вопросик, может я что то напутал с realloc??Посмотри плз!
| Код | /
#include "stdafx.h" #include "conio.h" #include "stdio.h" #include "stdlib.h"
typedef struct MyGoods{ char name[10]; int id_code; char izmer[10]; int price; } Goods;
void Add_to_File(Goods * ptr){ int z=1; FILE *f; f = fopen( "read.txt", "a+b"); fwrite(ptr,sizeof(Goods), 1,f); fclose(f); } int _tmain(int argc, _TCHAR* argv[]) { system("cls"); int d=0; int nCount=2;
Goods *A; //A= new Goods[2]; Goods * ptr =(Goods *)malloc(sizeof(Goods)*nCount); printf("programm Goods\r\n"); printf("\r\nEnter 1: add to file"); printf("\r\nEnter 2: edit file"); printf("\r\nPlease enter key 1,2,3,4,5,6,7,8,9,0");
d=getch(); switch(d){ case 49:{ system("cls"); printf("ADD"); printf("Enter name "); scanf("%s", &ptr->name); printf("id code "); scanf("%i", &ptr->id_code); printf("Enter izmer "); scanf("%s", &ptr->izmer); printf("Enter price "); scanf("%i", &ptr->price); Add_to_File(ptr); break; } case 50: { printf("enter 2"); int z=1; FILE *f1; ptr=(Goods*)realloc(ptr, 4); f1 = fopen( "read.txt", "r"); size_t res=fread(ptr,sizeof(Goods), 4,f1); // ptr=(Goods*)realloc(ptr, sizeof(Goods)*res);//перероспределения памяти //fread(ptr,sizeof(Goods), res,f); // for( ptr=A; ptr<4+A; ptr++){ printf("%s", ptr->name); printf("%i", ptr->id_code); printf("%s", ptr->izmer); printf("%i", ptr->price); fclose(f1);///[color=red]После выполнения закрытия программа зависает!почему???[/color] system("cls"); //} break; }
} //}
getch();
return 0; }
|
|