I have designed a stock system i can read and write to it but i dont know how to edit the data and create a stock level. The code i have is:
Code:
#include<stdio.h>#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#define FALSE 0
#define True !FALSE
struct stock_data {
char name[30];
float buy_price;
};
void write_info(void);
void read_info(void);
void edit_info(void);
void main()
{
char c;
int done=FALSE;
while(!done)
{
puts("\nstock\n");
puts("A - Add New stock\n");
puts("L - List stock\n");
puts("Q - Quit\n");
printf("Your Choice:");
c = getch();
c = toupper(c);
switch(c)
{
case('A'):
puts("Add New stock\n");
write_info();
case('L'):
puts("Lists stock\n");
read_info();
case('Q'):
puts("quit\n");
done = True;
break;
default:
puts("?");
break;
}
}
}
void write_info(void)
{
FILE *stocks;
struct stock_data stock;
char input[12];
printf("Enter stock name:");
gets(stock.name);
printf("how much did it cost?");
stock.buy_price = (float)atof(gets(input));
stocks = fopen("stock.txt","a");
if(stocks==NULL)
{
puts("error opening fie");
exit(1);
}
fwrite(&stock,sizeof(stock),1,stocks);
fclose(stocks);
puts("Stock updated");
}
void read_info(void)
{
FILE *stocks;
struct stock_data stock;
int x;
stocks = fopen("stock.txt","r");
if(stocks==NULL)
{
puts("No data in file");
return;
}
while(True)
{
x = fread(&stock,sizeof(stock),1,stocks);
if(x==0) break;
printf("\nStock name: %s\n",stock.name);
printf("Cost= %.2fGBP \n",stock.buy_price);
}
fclose(stocks);
}