код предназначен для создания покупки магазина, системы поддержания запасов У меня есть проблема с вводом данных из файла txt в связанный список с fscanf (fp, ....... .....) функция;читать данные из файла txt в связанном списке
Приведенный ниже код имеет проблемы, описанные в разделе комментариев, но при использовании кода в turbo c и ввода данных во время выполнения содержимое идет в файл правильно, если я не читаю более старое содержимое. каждый раз, когда я открываю программу, файл переопределяется. Когда я читаю содержимое с помощью fscanf() значения нежелательной почты начинают добавляться в файл, я не знаю, почему. может быть потому, что я использую указатели вместо объектов, но я не знаю другого пути.
Я знаю, что моя программа неэффективна, но все же я хочу знать, в чем проблема с кодом и как его решить. Я использовал множество переменных, некоторые из них никогда не будут использоваться, прошу простить меня. проблемы в коде будет найдена в функции создания:
#include<alloc.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<graphics.h>
#define size 20
struct shop{
char name[size];
int quantity;
int price;
struct shop *next;
}*start;
typedef struct shop sh;
char u_name[30];
char u_pass[30];
int i,user,password;
int k=0,l=0;
char add_more;
char c,choice,c1,more;
void create()
{ FILE *fc,*fp;
struct shop *ptr,*temp,*g,*l,*m,*t,*i,*d;
char ch,v[20];
int r,z,w,flag=0;
//the code ***************from here******************
fc=fopen("storedata.txt","r");
d=(sh*)malloc (sizeof(sh));
d->next=NULL ;
i=d;
m=d;
while(fscanf(fc,"%s\t%d\t%d",m->name,m->quantity,m->price)!=EOF)
{
d=(sh*)malloc (sizeof(sh));
m->next=d;
m=m->next;
}
m->next=NULL;
fclose(fc);
t=i;
clrscr();
printf("NAME\t\t\tQUANTITY\t\t\t\tPRICE(RS)");
do
{
printf("\n%s ",t->name);
printf("\t\t\t%-20d",t->quantity);
printf("\t\t\t%-40d",t->price);
t=t->next;
}while(t!=NULL);
getch();
getch();
//*************till here********the smaller code part above is the code to read in the file which doesnt work correctly
start=i;} // when i remove this line all the values entered in the file are correct but file is overridden every time i run it
благодаря
Пожалуйста, уменьшите код до тестового теста _minimal_, который воспроизводит вашу проблему, и узнайте, как использовать отладчик/посыпать свой код с помощью printfs, чтобы выяснить, что он делает. – Mat
Пожалуйста, сократите код до [соответствующих частей] (http://sscce.org/) - и отформатируйте его. –
@ Соответствующая часть - это чтение файла, помеченного комментариями в create function.i, не знаю, как добавлять блоки кода в этот раздел комментариев. проблема заключается в чтении файла в связанном списке. извините за неудобства –